IOS 中的 FCM 错误:调用者没有权限?
FCM error in IOS : The caller does not have permission?
我正在使用 Firebase 节点管理 API 向 Android 和 IOs 设备发送推送通知。 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
根据您的错误信息
code: 'messaging/mismatched-credential'
Firebase official documentation 说:
用于验证此 SDK 的凭据无权向与提供的注册令牌对应的设备发送消息。确保凭据和注册令牌都属于同一个 Firebase 项目。有关如何验证 Admin SDK 的文档,请参阅 Add Firebase to your app 。
您可能正确配置了 Android,但您遗漏了 iOS 的一些小细节。按照 this link 设置 iOS 客户端 :)
就我而言,据我所知,推送通知在 android 上有效,但 iOS 出于某种原因给了我完全相同的错误。
我所做的是:
- 从 firebase 控制台重新下载
GoogleService-Info.plist
,确保它适用于 iOS 设备
- 删除了项目中的旧的
- 添加新的,确保选中
copy items if needed
选项
- 测试您是否通过控制台或 admin sdk 函数接收推送通知
我正在使用 Firebase 节点管理 API 向 Android 和 IOs 设备发送推送通知。 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根据您的错误信息
code: 'messaging/mismatched-credential'
Firebase official documentation 说:
用于验证此 SDK 的凭据无权向与提供的注册令牌对应的设备发送消息。确保凭据和注册令牌都属于同一个 Firebase 项目。有关如何验证 Admin SDK 的文档,请参阅 Add Firebase to your app 。
您可能正确配置了 Android,但您遗漏了 iOS 的一些小细节。按照 this link 设置 iOS 客户端 :)
就我而言,据我所知,推送通知在 android 上有效,但 iOS 出于某种原因给了我完全相同的错误。
我所做的是:
- 从 firebase 控制台重新下载
GoogleService-Info.plist
,确保它适用于 iOS 设备 - 删除了项目中的旧的
- 添加新的,确保选中
copy items if needed
选项 - 测试您是否通过控制台或 admin sdk 函数接收推送通知