2016-11-29 8 views
-2

Firebaseで電子メール/パスワード認証を使用しています。だからすべてのユーザーは電子メールアドレスを持っています。私のユーザーはグループに属しており、各ユーザーはグループ内の他のすべてのユーザーを見ることができます。具体的には、フロントエンドの電子メールのリストをユーザーに表示したいと考えています。私の質問は、そのためのルールを作る方法ではなく、むしろ、ユーザーIDがの場合、ユーザーの電子メールアドレスを取得するにはどうすればよいですか? 他のユーザーのリストを取得するよう依頼していますが、現在ログインしているユーザーではありません。Firebaseユーザの電子メールアドレスをIDで取得する方法

auth()で他のユーザーのメールアドレスを取得する方法を示す回答が見つかりませんでした。私は/usersコレクションの電子メールをユーザーIDの下に置くことを提案しましたが、それはメールアドレスをauth()/users/$userIdの両方に格納するのは非常に脆弱です。電子メールアドレスを変更するのは悪夢です。だから、auth()のメールを受け取る方法が必要でしょうか?

ありがとうございます!

+0

この質問を下落させた理由はありません。質問に間違いがある場合は、ここにコメントを残して編集してGoogle社員にさらに価値を提供してください。 –

+0

申し訳ありませんカイル。 Firebase認証からユーザのリストを取得するための公開APIはありません。機能の追加をリクエストする場合は、[ここ](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

管理者用SDKはクライアント側では実行できません(Angular)。これは私の質問には答えません。私はユーザーがどのように電子メールのリストを取得できるかを知る必要があります。 SDKを使用するか、 '/ users'コレクションに格納するかによって異なります。私はちょっとした解決策が必要です。 –

+0

私はまた、私があなたに答えたくないと明言しました。それは、それが私を少し助けないからです。 –

関連する問題