簡體   English   中英

Firebase Auth 內置身份

[英]Firebase Auth Built-in identity

我正在構建一個 web 平台,以使用 Firebase Auth 和 Firestore 將學習者與導師聯系起來。 我將學習者的用戶信息存儲在 Firestore 集合中,將導師的信息存儲在另一個集合中。 我正在構建一個 function,它可以在登錄時檢測客戶是學習者還是導師。

我正在考慮的一種解決方案是使用 UID 查詢用戶在哪個集合中找到。 雖然,這是一個潛在的解決方案。 但聽起來它需要大量的事務,如果 collections 變大,可能運行時間很長。 我還能做些什么嗎? 我想知道是否可以使用身份驗證為每個用戶構建嵌入式身份以區分“導師”和“學習者”? 那么用戶每次登錄,我們馬上就知道身份了?

我知道在解碼的身份驗證令牌中,有如下信息:

{ iss: 'https://securetoken.google.com/xxxx',
aud: 'xxxx',
auth_time: 1569886929,
user_id: 'aB03',
sub: 'aB03',
iat: 1570582588,
exp: 1570586188,
email: 'aa@gmail.com',
email_verified: false,
firebase:
{ identities: { email: [Array] }, sign_in_provider: 'password' },
uid: 'aa3' }

我可以利用其中之一來構建我想要的東西嗎?

非常感謝您的時間和幫助。

既然您提到“收藏”,我假設您正在尋找使用 Firestore。 在這種情況下:集合的大小對查詢性能沒有影響。 無論集合中有 1000 個用戶文檔、100 萬個甚至 10 億個用戶文檔,查詢單個用戶文檔所需的時間始終相同。


除此之外,您還可以將用戶的類型存儲在 ID 令牌中(這是您在問題中顯示的內容)。 這稱為“自定義聲明”,因為您正在將應用的自定義屬性添加到信息中。 您需要從受信任的環境(您的開發機器、您控制的服務器或雲功能)中執行此操作,因為我假設用戶不應該能夠更改自己的角色。 有關這方面的更多信息,請參閱有關使用自定義聲明控制訪問的文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM