iOS 上的 expo-notifications getDevicePushTokenAsync 返回一个不是 FCM 且不适用于 firebase 的令牌

问题描述

  1. SDK 版本:40
  2. 平台(Android/iOS/网络​​/所有):iOS
  3. 根据您有疑问的 Expo 图书馆添加适当的“标签”。

嗨,我正在使用带有 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 问题中有一些讨论)。

firebase 函数代码是:

  return admin
    .messaging()
    .send({
      token: registrationTokens,data: {...}

和本机反应:

token = (await Notifications.getDevicePushTokenAsync()).data;

(两者都适用于 Android)

也在世博论坛:https://forums.expo.io/t/expo-notifications-getdevicepushtokenasync-on-ios-returns-a-token-thats-not-fcm-and-does-not-work-with-firebase/52155

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...