问题描述
嗨,我正在使用带有 expo 和 expo-notifications 的 react native,并在 firebase 函数中使用 firebase 消息发送通知。
集成在 android 上效果很好,但在 iOS 上效果不佳,返回的令牌似乎是 apn 令牌而不是 FCM,并且 Firebase 管理员拒绝了该令牌,并显示“注册令牌不是有效的 FCM 注册令牌”
我尝试使用“https://iid.googleapis.com/iid/v1:batchImport”(遵循本指南:https://www.thepolyglotdeveloper.com/2017/06/apns-tokens-fcm-tokens-simple-http/)返回有效的 FCM 令牌,并与 Firebase Notification Composer 配合使用,我可以通过该接口获取通知,但是如果我尝试进行转换并使用 firebase 从生成的 FCM 发送通知,我会收到来自 firebase“SenderId mismatch”的错误。
我已将凭据正确添加到 firebase iOS 客户端,正如 Firebase Notification Composer 所证明的那样,但不知何故,expo 返回的令牌未使用与 firebase 相同的 SenderId 进行签名,管理员会检查 Composer 没有?不知道是怎么回事。
简而言之:
我想从 Notifications.getDevicePushTokenAsync() 获取 FCM 令牌,这应该是可能的,或者是可能的(至少在 github 问题中有一些讨论)。
return admin
.messaging()
.send({
token: registrationTokens,data: {...}
和本机反应:
token = (await Notifications.getDevicePushTokenAsync()).data;
(两者都适用于 Android)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)