虎視眈々と

Flutter × Firebaseを研究するアプリエンジニア

Flutterでサインイン、サインアップをFirebase Authを使って実装する

f:id:superman199323:20181127094138j:plain

Flutterでサインイン、サインアップをFirebase Authを使って実装する

Firebase Authを使ったメールアドレスとパスワードを使った認証機能の実装について書きます。

FirebaseとFlutterの接続方法については下記の記事をご覧ください。

www.shogogeek.com

準備

プラグインを導入します。

pubspec.ymlを編集します。

dependencies:
  flutter:
    sdk: flutter

  firebase_auth: ^0.6.6

追加したら、下記のコマンドを実行します。

flutter packages get

サインアップ

Future<FirebaseUser> signUp(String email, String password) async {
    final FirebaseAuth _auth = FirebaseAuth.instance;
    final FirebaseUser user = await _auth.createUserWithEmailAndPassword(
        email: email, password: password);
    print(user);
    return user;
  }

ログイン

Future<FirebaseUser> singIn(String email, String password) async {
    final FirebaseAuth _auth = FirebaseAuth.instance;
    final FirebaseUser user = await _auth.signInWithEmailAndPassword(
        email: email, password: password);
    print("User id is ${user.uid}");
    return user;
  }

サインイン、サインアップともに返ってくる FirebaseUser というのはそのユーザー情報が格納されていて、 user.email でそのユーザーのメールアドレスが取れたり、 user.uid でユーザーごと一意になる、文字列が取得できます。

パスワードリセット

final FirebaseAuth _auth = FirebaseAuth.instance;

_auth.sendPasswordResetEmail(email: email).then((doc) {
      Navigator.pop(context);
      _onSuccessDialog();
    }).catchError((err) {
      _onErrorDialog(err);
    });