2016-11-29 45 views
-2

我在Firebase中使用電子郵件/密碼身份驗證。所以每個用戶都有一個電子郵件地址我的用戶分組,我希望每個用戶都能看到組中的所有其他用戶。具體來說,我想在前端向用戶顯示一個電子郵件列表。我的問題不是關於如何爲此制定規則,而是,如何獲得用戶ID爲的用戶的電子郵件地址?請注意,我詢問的是獲取其他用戶的列表,而不是當前登錄的用戶。如何通過ID獲取Firebase用戶的電子郵件地址

我還沒有找到任何SO答案,顯示如何通過auth()獲取另一個用戶的電子郵件地址。我已經看到了建議將電子郵件放在/users集合下的用戶ID下,但對於我來說,在auth()/users/$userId中存儲電子郵件地址似乎令人難以置信。更改電子郵件地址將是一場噩夢。所以必須有辦法從auth()得到電子郵件,對吧?

謝謝!

+0

這個問題沒有理由應該是downvoted。如果問題出現問題,請在此留言,以便我編輯它以向Google員工提供更多價值。 –

+0

對不起凱爾。沒有公開的API可以從Firebase身份驗證中獲取用戶列表。如果您想要添加該功能,請在[這裏](https://firebase.google.com/support/contact/bugs-features/)中打開鈴聲。除此之外,我不明白這個問題與這些問題有何不同:http://stackoverflow.com/search?q=%5Bfirebase-authentication%5D+list+of+users,所有這些都將指向存儲用戶在單獨的數據庫中。脆弱或不脆弱,這是目前唯一已知的方式(這是由很多開發人員使用)。 –

+0

謝謝弗蘭克,這正是我想知道的。儘管這是一個可怕的解決方案,但它比回答不同的問題要好。如果您更新了該解決方案,以便讓未來的Google員工不會感到困惑,我會將您的答案標記爲解決方案。謝謝弗蘭克。 –

回答

0

如果您想要檢索特定用戶的電子郵件地址,則可以使用新的Firebase Admin SDK。

admin.auth().getUser(uid) 
    .then(function(userRecord) { 
    // See the tables below for the contents of userRecord 
    console.log("Successfully fetched user data:", userRecord.toJSON()); 
    }) 
    .catch(function(error) { 
    console.log("Error fetching user data:", error); 
    }) 

請參閱the documentation on retrieving user data

顧名思義,Admin SDK以高級授權運行,因此只能在受信任的硬件上運行,例如,您控制的應用程序服務器。

正如我評論:沒有API來獲取用戶列表。

+0

Admin SDK無法在客戶端運行(在Angular中),所以這不能回答我的問題。我需要知道用戶如何獲得電子郵件列表。無論是通過SDK還是將其存儲在'/ users'集合中。我只需要某種解決方案。 –

+0

我也明確表示,我不想回答你給的,因爲這對我來說並沒有幫助。 –

相關問題