我需要使用flutter和firebase添加电子邮件/密码身份验证

时间:2019-11-17 19:44:17

标签: firebase flutter firebase-authentication

我有一个 Google身份验证,它只能运行 fine ,并且我需要创建另一个 signUp 方法(使用电子邮件和密码) ),那么实现此 signUp 方法的最佳方法是什么?

我试图创建一个用户,并且成功了。但是随后,我无法导航到我的其他页面!

我找不到任何好的博客文章或文档。 请注意,当用户注册时,我还需要将其添加到firebase数据库中。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

emailPasswordLogin(BuildContext context, String email, String password)async{
  try {

    AuthResult authResult = await _auth.signInWithEmailAndPassword(
      email: email, password: password);
    FirebaseUser user = authResult.user;



  } catch (ex) {
    print("Code: " + ex.code);
    switch (ex.code) {
      case 'ERROR_USER_NOT_FOUND':
      {
        await createUser(email, password, context);
      }
      case 'ERROR_WRONG_PASSWORD':
        print("wrong password);
        break;
      case 'ERROR_INVALID_EMAIL':
        print("invalid email")
        break;
      case 'ERROR_OPERATION_NOT_ALLOWED':
        print("Login Method not defined")
        break;
      case 'ERROR_WEAK_PASSWORD':
        print("weak password")
        break;

      default:
        print('Case ${ex.message} is not yet implemented');
    }
    return;
  }
  storeData(user, context);

}

storeData(FirebaseUser user, BuildContext context) async {
  _database = new FirebaseDatabase();

  await _database
        .reference()
        .child('user')
        .push().set(<dynamic, dynamic> async{
          "email": user.email,
         }).then((_) {
           print("Transaction commited");
           Navigator.of(context).push(
             MaterialPageRoute(builder: (context) => NextPage());
         });
}