2017-07-24 84 views
4

根據我以前提出的問題Firebase onMessageReceived not called when app is in the background,我需要將有效載荷更改爲「數據」有效載荷,而不是「通知」有效載荷。 (見鏈接 - What is the difference between Firebase push-notifications and FCM messages?)。如何區分推送通知的Android和IOS Firebase ID?

問題是,我們使用Firebase和IOS應用程序都需要推送通知有效載荷使用「通知」結構,而Android需要「數據」有效載荷結構。

因此,我的問題是,您如何區分通過firebase SDK獲得的Android和IOS令牌/ ID?

如果我們的服務器會保存這些ID,需要發送推送通知,它需要以改變有效載荷結構來指定的Android VS IOS。唯一可以通過基於應用的服務器來完成此識別的唯一方法是區分IOS和Android?還是有更復雜的方式使用Firebase,可以讓我們指出它是哪種設備?

謝謝大家。

+0

如果用戶使用ios或android,您可以將它存儲在變量中 –

+0

White true,Martin,我們需要考慮多個設備,並且如果用戶同時擁有並登錄到這兩者或與人共享帳戶,則會成爲問題的一致性。 – Silmarilos

+0

在這種情況下,你可以發送它的兩種方式,通知和數據結構 –

回答

6

有關應用程序實例的信息可從Instance ID Service在此端點:

https://iid.googleapis.com/iid/info/IID_TOKEN 

成功時調用返回HTTP狀態200和含有various status for the app instance包括platform JSON對象:

返回ANDROID,IOS或CHROME來表示設備平臺爲 ,該令牌所屬的爲

+0

Spot,Bob。 Ty爲信息。 對於任何不確定如何獲取此實例ID的人,此ID都是在您第一次打開應用程序時開始調用Firebase SDK時獲取的。在Android中,文檔位於https://firebase.google.com/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId。 – Silmarilos