我正在使用Firebase云消息传递(用于推送通知)。我正在尝试发送到原生的Android客户端(android模拟器)。
我已集成Firebase客户端,以便获取设备令牌。它发布到我的服务器,我将它存储在我的数据库中。我将数据库中的内容与我在Android Studio中输出到控制台的内容相匹配,两者都是相同的。
当我通过Firebase控制台发送通知并选择 用户细分 (并从下拉菜单中选择我的应用)时,通知会立即显示在我的测试中客户如期待。
我尝试通过Firebase的Web API发送一个json编码的POST请求,并获得了似乎是成功的响应。
请求(设备令牌被屏蔽。优先级来自我读过的一些iOS线程,并且已经过测试,没有它):
{ “到”: “fKztL ______ WzGZxTjRNZj2YXrOTJpGQwKodf1Mp8-edBZoeZ4VysaRAtnM7QyTMZ9JMS”, “优先”: “高”, “通知”: {“title”:“Portugal vs. Denmark”,“body”:“5 to 1”}}
响应:
{ “multicast_id”:4910502640920269865, “成功”:1, “失败”:0, “canonical_ids” 产品:> 0 “结果”:[{ “MESSAGE_ID”: “0:1476243679500399%3afa7e613afa7e61”}]}
出于某种原因,通知从未出现过。我尝试将设备令牌粘贴到Firebase控制台并从那里发送。也没有运气。
因此,出于某种原因,用户段可以正常工作,但设备令牌ID无法在Web API或控制台中运行。在所有情况下,我都在后台安装了应用程序,以便通知应该转到顶部的栏。
我正在抓住onTokenRefresh()
并留意任何变化,所以我认为我没有使用陈旧的令牌。
出于好奇 - Firebase客户端是否自动处理在Firebase服务器上注册设备令牌?我自己没有做任何事情将它发送给Firebase,我认为他们会照顾它。
我的控制台看起来很怪异,因为它说的没有活跃用户(我只在模拟器中运行1个副本,所以我没想到太多)。此外,Firebase控制台中的通知漏斗图表显示,即使我的客户端收到发送到用户段的邮件,也会发送/打开邮件的0个副本。看来Firebase根本不知道我的模拟客户端是否存在。怪异。
另外,我从未对Firebase指定的dev / sandboxed环境做过任何事情。我假设在他们提供的任何生产环境中,所有内容都只是“活动”,并且没有任何阶段可以在他们的服务器上部署此功能。
有什么想法?谢谢!
编辑:就像我点击提交发布此内容一样,他们出现在模拟器中(所有这些都在同一时间)。知道为什么他们花了超过30分钟到达?对于我想要使用它的东西,没有办法足够可靠。谢谢!