Firebase 云消息传递 - iOS - 未注册或无法订阅主题
Posted
技术标签:
【中文标题】Firebase 云消息传递 - iOS - 未注册或无法订阅主题【英文标题】:Firebase Cloud Messaging - iOS - notregistered or cannot subscribe to topic 【发布时间】:2017-07-03 19:04:25 【问题描述】:在与 Firebase Cloud Messaging 苦苦挣扎了几个小时后,我发现了问题并想在这里发帖,因为我之前找不到答案。
我的问题是:我正在使用 Firebase 云消息传递,并且在订阅主题和接收消息时遇到了很多麻烦。尝试直接向设备发送消息时,我经常会收到“未注册”错误,订阅主题时无法订阅主题 Error Domain=com.google.fcm Code=0 "(null)"。
【问题讨论】:
【参考方案1】:原来,答案很简单。该应用程序最初是通过 TestFlight 安装的,然后我从 XCode 安装了 OVER。我只是从设备上完全卸载了该应用程序,然后通过 XCode 安装,一切都很好。
【讨论】:
【参考方案2】:很抱歉回答你,尽管你已经没有问题了。
据我所知,这种错误通常是由应用程序引起的,并没有完全配置到 FCM。
在调用FirebaseApp.configure()
后,我无法立即订阅或获取令牌,这需要一些时间。所以,等待一秒钟,实际上是一秒钟,解决了这个问题。
sleep(1)
请注意,您要暂停到哪个线程。
之后,应用每次向后端发送请求,令牌都准备就绪,并成功订阅了所需的主题。
【讨论】:
【参考方案3】:对我来说,这可以解决 NotRegistered
错误:
-
在 xCode 中打开我的项目
用
Project navigator
点击我的项目名称
点击Capabilities
标签
开启推送通知
This comment 来自 GitHub 帮助我解决了这个问题。显然,xCode 的某些时间/版本不听您在配置文件中指定的权利,因此您也必须在 xCode 中手动设置它。
【讨论】:
以上是关于Firebase 云消息传递 - iOS - 未注册或无法订阅主题的主要内容,如果未能解决你的问题,请参考以下文章
Flutter - Firebase 云消息传递,iOS 上未收到数据消息
Firebase 云消息传递 - PHP Rest API 不适用于 iOS
无法将iOS CriticalAlert发送到Firebase云消息传递