IOS 设备未注册 Firebase 通知,但适用于 Android 的相同代码

问题描述 投票:0回答:1

Error you can see here

错误:

[消息/未注册] 在调用 getToken 之前必须注册远程消息,请参阅 messages().registerDeviceForRemoteMessages()。

我的JS代码:

import messaging from '@react-native-firebase/messaging';

export const requestUserPermission = async () => {
    const authStatus = await messaging().requestPermission();
    const enabled =
        authStatus === messaging.AuthorizationStatus.AUTHORIZED ||
        authStatus === messaging.AuthorizationStatus.PROVISIONAL;

    if (enabled) {
        console.log('Authorization status:', enabled);
        getFcmToken()
    }
}

export const getFcmToken = async () => {
    try {
        const token = await messaging().getToken({ senderId: "727807064485" });
        console.log(token, ' TOKEN');
    } catch (error) {
        console.log("FCM error:", error)
    }
}

我的 Pod 文件配置根据 Firebase 文档

Podfile

AppDelegate.mm

Firebase 在 Android 上正常工作,但在 IOS 中,此代码仅适用于请求权限,当我尝试通过添加任何 firsbase.json 文件自动启用设备注册配置的 getToken() 时,会出现错误。

React Native Project info

FireBase 软件包版本:

    "@react-native-firebase/app": "^16.5.0",
    "@react-native-firebase/messaging": "^16.5.0",

尝试:-

  1. 添加 firebase.JSON 文件以禁用自动注册并尝试手动注册设备,但它不起作用,

  2. 删除构建文件夹,

  3. npm start --重置缓存,

  4. 重新安装 Pod,

  5. 在 Xcode 中重新打开项目,

ios react-native firebase-cloud-messaging cocoapods
1个回答
0
投票

对我来说,解决这个问题的方法是在 Xcode 项目的

Background fetch
中添加
Remote notifications
Signing & Capabilities
。不幸的是,错误消息没有让您知道出了什么问题。我通过阅读 Firebase Messaging 的手动 iOS 设置指南发现了这一点。

© www.soinside.com 2019 - 2024. All rights reserved.