1

我有使用Firebase身份驗證來驗證用戶的Android應用程序。註冊後,我將用戶信息發送到我的後端(python/flask)並將該信息保存到數據庫。如何將特定用戶鏈接到實例ID

現在我需要從後端向特定用戶發送通知,但是如何知道哪個實例ID屬於用戶?目前在用戶標識和實例標識之間沒有鏈接。我怎樣才能將這些鏈接在一起?在用戶登錄之前創建實例ID並在應用程序啓動時發送到後端。

+0

但你是什麼意思的用戶ID?您可以簡單地將您的實例ID從應用程序發佈到服務器。你在做什麼來拯救用戶? – Konrad

+0

按用戶ID我的意思是Firebase用戶uid。是的,我可以將實例ID發佈到服務器,但是如何將它鏈接到特定用戶?註冊後,我將用戶附加信息保存到我的數據庫(firebase_uid,暱稱,年齡等)。 – iqpolar

+0

例如,我需要爲用戶發送推送通知,該暱稱是John(數據庫中的用戶),我怎樣才能找出John的實例ID? – iqpolar

回答

1

您必須維護uid和iid之間的映射。因此,每次用戶登錄時,都會在後端維護uid的密鑰/值映射:[來自不同設備的所有iid]。請確保您發送Firebase ID令牌並在驗證令牌後從那裏獲取uid。您需要維護該映射。如果用戶註銷或由於各種原因(用戶禁用,刪除或密碼重置等)導致Firebase會話失效,請將該iid與uid斷開連接,並且如果iid失效,請將其從映射中移除。 當您需要向由uid標識的用戶發送推送通知時,您將查找iid令牌列表並向每個標識發送通知。

+0

好的。如何檢測iid何時失效,以便我可以將其發送到後端並將該iid從uid中解除鏈接? – iqpolar

+0

他們具有刪除令牌的公共方法:https://firebase.google.com/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId#public-methods和令牌刷新偵聽器:https:// firebase.google.com/docs/reference/android/com/google/firebase/iid/FirebaseInstanceIdService#public-methods – bojeil

+0

如果用戶登錄(在iid和uid之間創建鏈接),然後刪除並重新安裝應用程序(新iid創建)。 iid和uid之間會有過時的鏈接嗎? – iqpolar

相關問題