根据我之前提出的问题
Firebase onMessageReceived not called when app is in the background,我需要将有效负载更改为“数据”有效负载而不是“通知”有效负载. (见链接 –
What is the difference between Firebase push-notifications and FCM messages?).
问题是,IOS和Android应用程序都使用了Firebase,IOS应用程序需要推送通知有效负载才能使用“通知”结构,而Android需要“数据”有效负载结构.
因此,我的问题是,您如何区分通过firebase sdk获得的Android和IOS令牌/ ID?
如果我们的服务器保存这些ID并需要发送推送通知,则需要指定Android与IOS以更改有效负载结构.完成此识别的唯一方法是通过基于应用程序的服务调用来区分IOS和Android吗?或者是否有更复杂的方法使用Firebase,这将允许我们指出它是哪个设备?
谢谢大家.
解决方法
有关应用程序实例的信息可从此终端的
Instance ID Service获得:
https://iid.googleapis.com/iid/info/IID_TOKEN
成功时,调用返回HTTP状态200和包含various status for the app instance的JSON对象,包括平台:
returns ANDROID,IOS,or CHROME to indicate the device platform to which the token belongs