web-dev-qa-db-ja.com

Firebase Simple Loginをメールとパスワードで使用する方法

Firebase Simpleログインには email/password オプションがありますが、使用方法を教えてください。ユーザーの作成から開始し、そのユーザーのデータを保存し、ログインおよびログアウトします。

32
Anant

実行する3つの異なる手順があります(jQueryがあると仮定しましょう)。

1。コールバックを設定する

_var ref = new Firebase("https://demo.firebaseio-demo.com");
var authClient = new FirebaseAuthClient(ref, function(error, user) {
  if (error) {
    alert(error);
    return;
  }
  if (user) {
    // User is already logged in.
    doLogin(user);
  } else {
    // User is logged out.
    showLoginBox();
  }
});
_

2。ユーザー登録

_function showLoginBox() {
  ...
  // Do whatever DOM operations you need to show the login/registration box.
  $("#registerButton").on("click", function() {
    var email = $("#email").val();
    var password = $("#password").val();
    authClient.createUser(email, password, function(error,  user) {
      if (!error) {
        doLogin(user);
      } else {
        alert(error);
      }
    });
  });
}
_

。ユーザーログイン

_function showLoginBox() {
  ...
  // Do whatever DOM operations you need to show the login/registration box.
  $("#loginButton").on("click", function() {
    authClient.login("password", {
      email: $("#email").val(),
      password: $("#password").val(),
      rememberMe: $("#rememberCheckbox").val()
    });
  });
}
_

ログインが正常に完了すると、ステップ1で登録した呼び出しが正しいユーザーオブジェクトで呼び出されます。その時点で、実装する必要があるメソッドであるdoLogin(user)を呼び出します。

ユーザーデータの構造は非常に単純です。次のプロパティを含むオブジェクトです。

email:ユーザーのメールアドレスid:ユーザーの一意の数値(自動インクリメント)ID

FirebaseAuthClientは自動的にfirebsaeを認証します。これ以上のアクションは不要です。これで、セキュリティルールで次のようなものを使用できます。

_{
  "rules": {
    "users": {
      "$userid": {
        ".read": "auth.uid == $userid",
        ".write": "auth.uid == $userid"
      }
    }
  }
}
_

つまり、ユーザーIDが42の場合、ログイン時は_example.firebaseio-demo.com/users/42_でしか書き込みまたは読み取りができません。

Simple Loginは、IDと電子メール以外のユーザーに関する追加情報を保存しないことに注意してください。ユーザーに関する追加データを保存する場合は、自分で保存する必要があります(おそらくcreateUserの成功コールバックで)。通常はFirebaseにデータを保存するのと同じように、このデータを保存できます。このデータの読み取りまたは書き込みができるユーザーに注意してください。

41
Anant

誰かがこのスレッドに到達し、firebase認証を使用するサンプルアプリケーションを探している場合に備えてください。ここに2つの例があります

var rootRef = new Firebase('https://docs-sandbox.firebaseio.com/web/uauth');
......
.....
....

http://jsfiddle.net/firebase/a221m6pb/embedded/result,js/

http://www.42id.com/articles/firebase-authentication-and-angular-js/

4
ATHER