无法获取firebase消息令牌。 [错误:[消息/未知]。服务器请求太多。] - React Native IOS

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

我正在为我的 React Native 应用程序实现 Firebase Cloud Messaging 通知。对于Android,通知效果很好,但是,对于ios,我遇到了错误无法获取令牌,服务器请求太多。这是我用于获取FCM令牌+请求用户通知权限的代码片段

const getFcmToken = async () => {
  let fcmToken = await AsyncStorage.getItem("fcmToken");

  console.log("fcmToken", fcmToken);

  if (!fcmToken) {
    try {
      fcmToken = await messaging().getToken();
      if (fcmToken) {
        // user has a device token
        await AsyncStorage.setItem("fcmToken", fcmToken);
      }
    } catch (err) {
      console.log("Unable to get messaging token.", err);
    }
  }
};
export async function requestUserPermission() {
  const authStatus = await messaging().requestPermission();
  const enabled =
    authStatus === messaging.AuthorizationStatus.AUTHORIZED ||
    authStatus === messaging.AuthorizationStatus.PROVISIONAL;

  if (enabled) {
    getFcmToken();
  } else {
    console.log("not enabled");
  }
}

打开应用时,通知权限正常,只是获取FCM Token失败。请帮我解决这个问题。

ios firebase react-native
3个回答
5
投票

我遇到了类似的问题,我的应用程序成功检索了 Android 设备的 FCM 令牌,而 iOS 则响应了“服务器请求太多”错误。 我通过从 iOS 应用程序的 Firebase 控制台重新下载

GoogleService-Info.plist

文件解决了这个问题。

我不知道为什么,但我的 API 密钥似乎已被阻止或无效。重新下载 

GoogleService-Info.plist

文件后,API 密钥已更新,一切都重新开始工作。

GoogleService-Info.plist

添加到 React Native 项目的步骤可以在 React Native Firebase 文档的

入门
部分找到,您可以在其中设置 iOS 凭据。 希望这有帮助。


1
投票

要修复此问题,我必须添加 Firebase Installations API,因为该 API 使用 FID(Firebase 安装 ID)来确定消息传递的目标设备。

Firebase 安装服务 (FIS) 为每个已安装的 Firebase 应用实例提供 Firebase 安装 ID (FID)。

还有

Firebase Cloud Messaging 使用 Firebase 安装 ID 来定位消息传递的目标设备。

我启用的所有API如下:

    FCM注册API
  • Firebase 应用程序分发 API
  • Firebase 云消息 API
  • Firebase 安装 API
  • Firebase 远程配置 API
  • 移动崩溃报告API
  • 来源:
https://firebase.google.com/docs/projects/manage-installations


0
投票

在真实设备上测试应该可以解决问题。

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