1

我正在开发一个应用程序,Android 版本为实例 ID、云消息传递和分析实现了 Firebase。在获取实例 ID 和 FCM 令牌方面一切正常。

我还构建了一个服务器 API,用于向 Android 设备发送通知和数据负载,为了在 iOS 版本中使用相同的方法,我决定将 Firebase for iOS 用于相同的目的(实例 ID、云消息传递和分析)。

在 iOS 上设置 Firebase 有据可查,我能够为一切正常工作设置环境。但是,当我运行该应用程序时,我在控制台中收到以下错误(这意味着未检索到实例 ID 和 FCM 令牌):

....
[Firebase/InstanceID][I-IID003009] Failed to fetch default token Error Domain=com.firebase.iid Code=0 "(null)" 
[Firebase/InstanceID][I-IID003007] Failed to retrieve the default GCM token after 5 retries

等等,我知道还有其他人在这里抱怨同样的问题,但这是完全不同的情况。

我认为我的设置不正确或遗漏了什么,但我查看了所有程序和代码,一切都是 100% 正确的。

我所在的地方(叙利亚大马士革),一些服务被谷歌屏蔽,只能通过代理或 VPN 访问。因此,我为我用于测试的设备和模拟器设置了一个美国代理,当我运行应用程序时,一切正常,我能够获取实例 ID 和 FCM 令牌并将它们记录在控制台中。

奇怪的是,在 Firebase 控制台中,即使未收到 FCM 令牌,分析也会显示正确的用户数量,这意味着与 Firebase 服务的通信并未完全被阻止。唯一不工作的部分(没有代理)是获取 FCM 令牌。

我的问题是:为什么这个特定的 Firebase 服务在 iOS 而不是 Android 中被阻止,我能做些什么吗?请记住,我从同一位置获取 Android 中的令牌没有问题。或者这是 Firebase 中的错误并且服务不受位置限制?

我可以从我的位置连接到 Google API 以用于其他目的,例如 Google 地图或获取有关 FCM 令牌的信息……等等。但是,我注意到控制台指的是iid.firebase.com而不是iid.googleapis.com

在这方面的任何帮助或建议将不胜感激,因为我想决定是否应该继续尝试在两个平台上使用 Firebase,或者我是否应该依赖 Firebase for Android 和原生 APNs 方式 for iOS。另外,我想知道我实施 Firebase 的决定一开始是不是正确的。

谢谢!

4

0 回答 0