web-dev-qa-db-ja.com

Firebase AuthユーザーUIDを取得する方法はありますか?

NodeJSまたはJavascript APIを介してFirebaseから認証ユーザーUIDを取得しようとしています。私が探しているものがわかるように、スクリーンショットを添付しました。

enter image description here

皆さん、これで私を助けてくれることを願っています。

18
Piyush Bansal

Firebase 3では認証データは非同期です。したがって、イベントを待つ必要があり、現在ログインしているユーザーのUIDにアクセスできます。他のものを取得することはできません。既にログインしている場合は、アプリを開くときにも呼び出されます。

_firebase.auth().onAuthStateChanged((user) => {
  if (user) {
    // User logged in already or has just logged in.
    console.log(user.uid);
  } else {
    // User not logged in or has just logged out.
  }
});
_

アプリ内で、このユーザーオブジェクトを保存するか、firebase.auth().currentUserを使用していつでも現在のユーザーを取得できます。

https://firebase.google.com/docs/reference/js/firebase.auth.Auth#onAuthStateChanged

25
Dominic

ユーザーがログインしている場合、console.logが出力されます:

if (firebase.auth().currentUser !== null) 
        console.log("user id: " + firebase.auth().currentUser.uid);
16
JamesD

現在、Firebaseコンソールには、ユーザーのリストであるAuth User(s)UIDを取得するための直接的なAPIはありません。
ただし、Firebaseデータベース内では、ユーザーレベルでユーザーUIDを維持できます。以下のように、

"users": {
  "user-1": {
    "uid": "abcd..",
    ....
  },
  "user-2": {
    "uid": "abcd..",
    ....
  },
  "user-3": {
    "uid": "abcd..",
    ....
  }
}

その後、クエリを作成し、uidが必要なときにいつでも取得できます。
この簡単な解決策があなたのお役に立てば幸いです!

1
Karthi R

Firebase docsから、Firebase.getAuth()を使用します。

var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
var authData = ref.getAuth();

if (authData) {
  console.log("Authenticated user with uid:", authData.uid);
}

出典:

1
Selfish