我正在创建一个函数,通过FCM的setBackgroundMessageHandler事件的异步存储来存储数据。
我使用的是@react native firebase/messaging。SetBackgroundMessageHandler不工作。
我在https://rnfirebase.io/messaging/usage/ios-setup并从firebase网站发送。
除了当前的setBackgroundMessageHandler函数外,一切都很好。
我找了很长时间了,但找不到答案。
我用一个真正的设备进行了测试。推送消息正常显示,但没有发生setBackgroundMessageHandler事件。
Xcode背景模式屏幕截图
软件包.json
"@react-native-firebase/app": "^11.2.0",
"@react-native-firebase/messaging": "^11.2.0",
"@react-native-firebase/ml": "^11.2.0",
index.js
import React from 'reactn';
import messaging from '@react-native-firebase/messaging';
import {AppRegistry} from 'react-native';
import App from './App';
messaging().setBackgroundMessageHandler(async remoteMessage => {
// ...is not working
console.log('Message handled in the background!', remoteMessage);
});
function HeadlessCheck({isHeadless}) {
if (isHeadless) {
return null;
}
return <App />;
}
AppRegistry.registerComponent('AppName', () => HeadlessCheck);
App.tsx
React.useEffect(() => {
var _resultList = resultList;
const unsubscribe = messaging().onMessage(async remoteMessage => {
//...is working
}
messaging().onNotificationOpenedApp(remoteMessage => {
//...is working
});
// Check whether an initial notification is available
messaging()
.getInitialNotification()
.then(remoteMessage => {
if (remoteMessage) {
//...is working
}
});
}, []);
我的代码没有问题,Firebase提供的云消息测试工具也没有正确到达。
通过OAuth 2.0 Playground成功生成令牌,并将消息发送给邮递员。https://developers.google.com/oauthplayground
下面的代码是成功转移到poster的结构。https://fcm.googleapis.com/v1/projects/〔firebase项目id〕/messages:发送
{
"message": {
"token": "device token",
"notification": {
"title": "message title",
"body": "hello background worker?"
},
"apns": {
"payload": {
"aps": {
"content-available": 1
}
}
}
}
}