4

最近作成されたユーザーの UID を取得する方法はありますか?

createUser() documentationによると、何も返さないようです。

ユーザーに関する情報の保存を開始できるように、この情報を取得するにはどうすればよいでしょうか?

達成できる方法は、作成時にユーザーにログインすることです。しかし、既存のセッションを上書きしたくありません。

var firebaseRef = new Firebase('https://samplechat.firebaseio-demo.com');
  firebaseRef.createUser({
    email    : "bobtony@firebase.com",
    password : "correcthorsebatterystaple"
  }, function(err) {
    if (err) {
      switch (err.code) {
        case 'EMAIL_TAKEN':
          // The new user account cannot be created because the email is already in use.
        case 'INVALID_EMAIL':
          // The specified email is not a valid email.
        case default:
      }
    } else {
      // User account created successfully!
    }
  });
4

4 に答える 4

1

ユーザーが作成されたら、リンク先のページのコード サンプルのすぐ上にあるように、ユーザーを認証できます。

指定された資格情報を使用して、新しい電子メール/パスワード ベースのアカウントを作成します。アカウントが作成された後、ユーザーは authWithPassword() で認証される場合があります。

その後、authWithPasswordコールバックで、新しいユーザーのauhtData. https://www.firebase.com/docs/web/api/firebase/authwithpassword.html

于 2014-11-20T20:35:36.237 に答える
0

firebase のサポート フォーラムでこの質問をしたところ、Jacob からこの回答が得られました。これが同じ問題を抱えている人に役立つことを願っています。

http://groups.google.com/group/firebase-talk/からコピーして貼り付けます


必要なのは、別の Firebase コンテキストに対して認証することだけです。これは、新しい Firebase オブジェクトを作成するときに、文書化されていないコンテキスト引数を介して行うことができます。

// adminRef will be used to authenticate as you admin user (note the "admin" context - also note that this can be ANY string)
var adminRef = new Firebase("https://<your-firebase>.firebaseio.com", "admin");
adminRef.authWithCustomToken("<token>", function(error, authData) {
  if (error !== null) {  
    // now you are "logged in" as an admin user

    // Let's create our user using our authenticated admin ref
    adminRef.createUser({
      email: <email>,
      password: <password>
    }, function(error) {
      if (error !== null) {
        // let's create a new Firebase ref with a different context ("createUser" context, although this can be ANY string)
        var createUserRef = new Firebase("https://<your-firebase>.firebaseio.com", "createUser");

        // and let's use that ref to authenticate and get the uid (note that our other ref will still be authenticated as an admin)
        createUserRef.authWithPassword({
          email: <email>,
          password: <password>
        }, function(error, authData) {
          if (error !== null) {
            // Here is the uid we are looking for
            var uid = authData.uid;
          }
        });
      }
    });
  }
});

createUser() コールバックで uid を返す Firebase の新しいバージョンをまもなくリリースする予定です。その時点で、このややハックな回避策は必要ありません。

于 2014-11-21T16:00:57.787 に答える