【问题标题】:FCM error in IOS : The caller does not have permission?IOS中的FCM错误:调用者没有权限?
【发布时间】:2019-06-23 08:56:14
【问题描述】:

我正在使用 Firebase 节点管理 API 向 Android 和 IO 设备发送推送通知。 Android 工作正常,但在 IOS 中,我可以生成 FCM 令牌,但是当我从节点 js(firebase 管理代码)向 IOS 令牌发送推送通知时,我收到以下错误:

 Error sending message: { Error: The caller does not have permission
    at FirebaseMessagingError.FirebaseError [as constructor] (/Users/MAC/Documents/Workspace/Nodejs/msever/Mserver/node_modules/firebase-admin/lib/utils/error.js:39:28)
    at FirebaseMessagingError.PrefixedFirebaseError [as constructor] (/Users/MAC/Documents/Workspace/Nodejs/msever/Mserver/node_modules/firebase-admin/lib/utils/error.js:85:28)
    at new FirebaseMessagingError (/Users/MAC/Documents/Workspace/Nodejs/msever/Mserver/node_modules/firebase-admin/lib/utils/error.js:250:16)
    at Function.FirebaseMessagingError.fromServerError (/Users/MAC/Documents/Workspace/Nodejs/msever/Mserver/node_modules/firebase-admin/lib/utils/error.js:280:16)
    at FirebaseMessagingRequestHandler.handleHttpError (/Users/MAC/Documents/Workspace/Nodejs/msever/Mserver/node_modules/firebase-admin/lib/messaging/messaging-api-request.js:125:50)
    at /Users/MAC/Documents/Workspace/Nodejs/msever/Mserver/node_modules/firebase-admin/lib/messaging/messaging-api-request.js:113:23
    at process._tickCallback (internal/process/next_tick.js:68:7)
  errorInfo:
   { code: 'messaging/mismatched-credential',
     message: 'The caller does not have permission' },
  codePrefix: 'messaging' }

我正在为 Android 和 IOS 使用 react native

【问题讨论】:

    标签: firebase react-native push-notification apple-push-notifications firebase-cloud-messaging


    【解决方案1】:

    根据您的错误信息

    代码:'消息传递/不匹配的凭据'

    Firebase official documentation 说:

    用于验证此 SDK 的凭据无权向提供的注册令牌对应的设备发送消息。确保凭据和注册令牌都属于同一个 Firebase 项目。有关如何验证 Admin SDK 的文档,请参阅 Add Firebase to your app

    您可能正确配置了 Android,但您错过了 iOS 的一些小问题。关注this link设置iOS客户端:)

    【讨论】:

    • 是的,但我想不通。我在苹果控制台中创建了新密钥,并在 firebase 项目中添加了新的身份验证密钥,但仍然相同
    • 你能推荐一些简单的方法来从头到尾在苹果中创建 FCM 吗?
    • 您可以点击我的回答中提供的链接。没有什么比官方文档更好的了。所以我建议你遵循它,因为它是最新的
    • 我已删除旧的 FCM 应用程序并为 Android 和 IOS 重新创建它。现在服务器在 android 和 IOS 上都显示成功,但我只在 android 上看到通知。 IOS上什么都没有
    • 您是否将推送证书(.p12 文件)上传到 Firebase 控制台?我之前也看到过这个错误,上传之后就成功生成了token。
    【解决方案2】:

    据我所知,推送通知在 android 上有效,但由于某种原因 iOS 给了我这个完全相同的错误。

    我所做的是:

    1. 从 Firebase 控制台重新下载 GoogleService-Info.plist,确保它是适用于 iOS 设备的控制台
    2. 删除了项目中的旧的
    3. 添加新的,确保选中 copy items if needed 选项
    4. 测试您是否通过控制台或 admin sdk 功能收到推送通知

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-06
      • 2019-01-24
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      • 1970-01-01
      • 1970-01-01
      • 2022-08-03
      相关资源
      最近更新 更多