目前,我正在开发中。
在过去,我已经在我的应用程序中加入了FCM,所有适当的程序都在- https://firebase.google.com/docs/cloud-messaging/
直到今天我才意识到,在我的应用程序中,云消息没有被传递。
我的应用程序的wrt Firebase最近发生了什么变化(仅在过去的5-6天内)是-我加入了基于Firebase手机身份验证(OTP)的身份验证&生成了SHA-1证书。我还注意到google-services.json :目前我已经下载了&我之前使用的那个在几个方面有所不同。
我的问题仍然是,如果事情发生了变化,为什么我没有收到任何消息或通知失败。具有讽刺意味的是,当在服务器上发送FCM消息时,我没有收到任何故障。可能是消息发送成功?
另一个重要的方面-我发送的FCM消息从PHP页面上的Web服务器。我的思考过程使我产生了一个信念;因为我已经生成了SHA-1证书,所以它适用于设备。因此,FCM服务器与手持设备之间通过SHA-1加密建立信任关系。但是,由于真正的FCM消息是从运行在Web服务器上的PHP页面发送的,因此我认为对于我为FCM获得的服务器密钥,两者之间没有建立信任。因此,消息可能不会被传递到预期接收者。这是一个思考过程,对吗?
我还没有测试,但是新的google-services.json文件与FCM工作的可能性有关系吗?
发布于 2017-09-16 22:37:04
我已经用艰难的方式解决了这个问题,但它值得与所有人分享。
我已经创建了简单的FCM应用程序。在那里,我已经用相同的代码进行了验证,我可以让通知到达目标设备。然后我集成了Firebase电话身份验证。一样的..。我可以让通知到达目标设备。
因此,这项测试得出的结论是,这两个应用程序的设置方式肯定有所不同。在我使用的原始应用中- app gradle - firebase-auth:11.0.0 firebase-core:11.0.0 firebase-messaging:10.2.6 Project gradle - google-services:3.0.0
现在,在我今天开发的新应用中- App gradle - firebase-auth:11.0.0 firebase-core:11.0.0 firebase-messaging:11.0.0 Project gradle - google-services:3.1.0
因此,在最初的App gradle配置中,我更改了设置以与我最近开发的设置相匹配。然后它就像极乐世界一样工作。
我从中学到的是,如果你使用的是最新的Firebase库,你应该升级剩余的firebase组件的库。由于我最近加入了Firebase Phone Auth,因此使用了firebase-auth:11.0.0,但没有太多关注firebase-messaging。至少我还没有遇到任何要求提升库版本的文档。如果Google-Firebase的任何人阅读了这篇文章,我请求他们在文档中包含这一部分。
https://stackoverflow.com/questions/46240552
复制相似问题