Firebase 云消息推送通知不再出现在 iOS 上

Posted

技术标签:

【中文标题】Firebase 云消息推送通知不再出现在 iOS 上【英文标题】:Firebase Cloud Messaging Push Notificartions don't arrive on iOS anymore 【发布时间】:2017-07-23 14:26:32 【问题描述】:

我对 ios 上的 Firebase 云消息传递有疑问。我已经按照文档中的说明在应用程序中实现了 Firebase,并生成了一个 Firebase 实例 ID。但是,如果我尝试发送推送通知(例如使用http://pushtry.com/),则什么也没有发生。问题是,它确实工作了,而且我不记得更改了与通知有关的任何内容。

因为找不到任何东西,我什至尝试删除整个项目并从头开始重新做所有事情(通过复制代码)。然后它再次工作,但现在(一个小时后)再次,它再次不起作用。

如果我从 pushtry 或 Firebase 控制台发送 FCM,它会说消息已传递,但没有任何反应! (在 iOS 设置中启用了推送通知。它确实有效)

我真的不知道该怎么办。有人知道我能做什么吗?

提前谢谢你。

【问题讨论】:

【参考方案1】:

好吧,经过两天的极度沮丧,我想通了。 问题在于info.plist 文件中的FirebaseAppDelegateProxyEnabled 行设置为NO

我拆线后,问题就消失了!

我现在很放心

【讨论】:

这是一个奇怪的参数。我一直在寻找“无法获取 APNS 令牌”问题 2 天,并将“FirebaseAppDelegateProxyEnabled = false”添加到 info.plist 为我解决了这个问题。恰恰相反。我正在 iPad Pro (OS v10) 上运行测试。您的设备是哪个版本的? iPad Pro 9.7、iOS 10.3.3 “无法获取 APNS 令牌”消息是一条红鲱鱼。 Firebase 最终会获取 APNS 令牌。我还最终将代理参数设置为 true (YES)。【参考方案2】:

设置参数content_availabletrue

【讨论】:

我做到了。正如我所说,即使从官方 Firebase 控制台发送的消息也不会再到达设备上,即使它在网站上显示“已发送”。 使用您自己的后端服务器来处理通知以确保其正常工作 大部分时间消息确实会到达 iOS,但有时我们必须删除 Token 才能重新获得通信。【参考方案3】:

在我的例子中,我已经迁移了我的 Apple 帐户并且忘记正确配置我的 Apple 和 Firebase 帐户。

苹果方面

    确保为该应用 ID 启用“推送通知”。 确保您已创建“Apple Push Notification service”证书并附加到 Apple Id。 创建稍后将更新的授权密钥加载 Firebase,以便它可以代表您与 Apple 服务器通信。 (link)

Firebase 方面

    确保在 Firebase 项目中正确设置 iOS Apple 包 上传您之前在 Apple 中创建的授权密钥 - 上面的第 3 步。 (link) 按照所有步骤将 iOS 应用与 Firebase SDK 集成

就是这样。

【讨论】:

以上是关于Firebase 云消息推送通知不再出现在 iOS 上的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 云消息传递未在 iOS 14 上提供推送通知

如何在 Xamarin.iOS 中使用 FCM(Firebase 云消息传递)发送 iOS 推送通知

为啥推送通知不能在 iOS 中使用 Firebase 从设备到设备?

FCM 检测 IOS 上的应用程序卸载(firebase 云消息推送通知)

React Native Firebase 6 云消息传递和推送通知

Apple WatchOs 以及用于推送通知的 Firebase 云消息传递