1

我有一个启用了云消息传递的 Firebase 项目。我正在使用带有服务帐户的 nodejs SDK 进行调用admin.initializeApp(),到目前为止,我能够访问桌面 Chrome、android Chrome 和 android 示例应用程序,如firebase/quickstart-android所示。

但是,我无法从 nodejs SDK 访问 react-native 构建的 iOS 应用程序(在 testflight 上运行)。它已在 Firebase 控制台中注册 iOS 应用程序将其通知/注册令牌发送到我的 nodejs 后端,但是当我尝试与所述令牌交互时,我不断收到

{
    "code": "messaging/registration-token-not-registered",
    "message": "Requested entity was not found."
}

iOS 应用确实会收到基于 Firebase Console 构建的消息,所以我想这意味着它的配置很好。

我想到的唯一解释是我应该在我的节点 sdk 中使用 APNS,但文档说只有在手动构建 HTTP v1 请求时才需要,并且 Node SDK 应该在内部处理身份验证。

如果我使用桌面、PWA、Android 和 iOS 令牌手动构建 HTTP 请求

curl -X POST \
  https://fcm.googleapis.com/fcm/send \
  -H 'Authorization: key=AAAAxxxxfc:ASDFG' \
  -H 'Content-Type: application/json' \
  -d '{
    "registration_ids": [
        "crC4-mcUgl0:APA91b...", //<Chrome Desktop Token>"
        "dxye8zL0Ke4:APA91b...", //<Android Token>",
        "cgEuQzw7tzk:APA91b...", //<PWA Token>",
        "eIzMUZYYzEM:APA91b..." //<iOS Token>
    ],
    "notification": {
        "title": "Testing notification",
        "body": "Hey, does this message work?"
    }
}'

我得到三个成功结果和一个失败的 iOS 说“未注册”。

  • 那么...是因为我在请求中缺少 APNS 证书吗?
  • 是因为 iOS 应用程序在 testflight 上运行吗?
  • iOS 应用程序应该执行额外的请求还是在其代码中提供额外的权限?
  • 服务帐户是否应该对 iOS 应用程序具有特殊权限?
4

0 回答 0