【问题标题】:firebase react-native push notifications working for iOS release builds, but do not work in app released via App Storefirebase react-native 推送通知适用于 iOS 发布版本,但不适用于通过 App Store 发布的应用程序
【发布时间】:2018-01-10 16:23:37
【问题描述】:

我的推送通知在 Android 上的 Google Play 发布版本中按预期工作,平视显示器按预期显示。我还通过 Xcode 在发布版本中按预期工作了推送通知。

问题:在通过 App Store 发布的 iOS 版本中没有按预期显示推送通知。

  • 我创建了一个新的APNs Authentication Key 并将其上传到 Firebase
  • 我已开启 swizzling
  • 在 Xcode 中启用自动签名
  • Firebase、Xcode 和 plist 中的包 ID 相同

我的包版本控制:

"firebase": "^4.8.1",
"firebase-admin": "^5.7.0",

没有错误或崩溃,只是没有显示推送通知。我还更新了 firebase 库,但不确定它是否有任何效果。

我没有使用证书,Firebase 建议使用 APNs 身份验证密钥:

【问题讨论】:

  • 您的代码签名身份设置是什么样的?
  • 你也试过这个吗? stackoverflow.com/questions/41169460/…
  • @peter-tao 请查看对原始帖子的编辑以获取两个问题的答案。
  • 尝试将您的 Release Code Signing Identity 设置为 iOS Distribution。归档应用,在手机上安装临时版本,并测试是否可以接收推送通知。
  • 好的,因此将通过在原始问题中添加一些信息来解决此问题。我正在使用firebase-admin 包并通过admin.messaging().sendToDevice(tokens, notification, options) 发送通知。使用这个我添加了content_available: true,这是ios读取aps有效负载并使应用程序即使在后台也可用的方式,但是firebase-admin文档参数实际上是contentAvailable: true并在此之后正确映射到ios。

标签: ios firebase react-native push-notification react-native-ios


【解决方案1】:

TL;DR

因此,总而言之,contentAvailable: true 必须在使用 firebase-admin 并通过以下方式向后台 ios 应用程序发送仅数据负载推送通知时在选项参数中设置:

const options = {
  priority: "high",
  contentAvailable: true,   // NOT content_available: true
}


admin.messaging().sendToDevice(tokens, notification, options)

...

【讨论】:

    猜你喜欢
    • 2020-06-24
    • 2013-03-28
    • 2020-05-22
    • 2018-05-25
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多