如何在本机中订阅firebase特定主题?

时间:2020-10-05 10:11:38

标签: javascript react-native firebase-cloud-messaging

package.json

    "@react-native-firebase/app": "8.4.2",
    "@react-native-firebase/messaging": "^7.8.6",
    "react": "16.13.1",
    "react-native": "0.63.2"

当前,我能够从Web api接收推送通知,该通知已设置为通过fcm api发送通知。

现在,我要实现subscriptionToTopic,因为设备将具有不同的用户组。例如,通过组合companycode = F88和departmentid = 1:-F881。但是我得到了错误:-

可能的未处理的承诺拒绝(id:0): 错误:[消息/未知]无效的主题名称:与允许的格式[a-zA-Z0-9 -_。〜%] {1,900}不匹配。

我也尝试F88.1/topics/F88/1。但是我仍然得到错误。我使用正则表达式测试器检查了输入字符串和允许的格式,它是有效的。

我的实现如下: root / src / navigator / navigationContainer.js

// This is minimal static code. 
// Real data will retrieve from web api login validation
const constTopic = 'F881';
export const StackNavigator = () => {
  React.useEffect(() => {
    const unsubscribe = firebase.messaging().onMessage(async remoteMessage => {
      console.log(JSON.stringify(remoteMessage));
    });
    // Error on here
    firebase.messaging().subscribeToTopic(constTopic);
    return () => unsubscribe;
  }, []);
}

我想在验证登录后订阅某些主题(单击登录或在初始屏幕上的AsyncStorage上找到令牌后出现)。如果未登录,则它应仅显示常规通知。

0 个答案:

没有答案