Flutter:Firebase身份验证无需自动登录即可创建用户

时间:2019-01-29 01:40:22

标签: firebase dart flutter firebase-authentication

我的flutter应用程序中具有使用Firebase身份验证的用户管理功能。我可以使用firebase_auth的{​​{1}}函数注册新的用户帐户。

createUserWithEmailAndPassword()

问题是注册成功后,即使我已经登录,它也会自动将我的return await FirebaseAuth.instance. createUserWithEmailAndPassword(email: email, password: password); 实例认证为新用户。

我遇到了以下答案: Firebase kicks out current user ,但它使用的是JavaScript,并且具有稍微不同的api。

我该如何在飞镖上做同样的事情?

2 个答案:

答案 0 :(得分:2)

我试用了Firebase身份验证api,目前可以使用的解决方案是:

FirebaseAuth

从本质上讲,这归结于创建新的static Future<FirebaseUser> register(String email, String password) async { FirebaseApp app = await FirebaseApp.configure( name: 'Secondary', options: await FirebaseApp.instance.options); return FirebaseAuth.fromApp(app) .createUserWithEmailAndPassword(email: email, password: password); } 实例,因此从FirebaseAuth进行的自动登录不会影响默认实例。

答案 1 :(得分:2)

基于Swift's answer,我为此发布了更新的代码。

  Future signUpWithEmailPasswordAdminPastor(String email, String password, String role, String nama, String keuskupan, String kevikepan, String paroki) async {
try {

  FirebaseApp tempApp = await Firebase.initializeApp(name: 'temporaryregister', options: Firebase.app().options);

  UserCredential result = await FirebaseAuth.instanceFor(app: tempApp).createUserWithEmailAndPassword(
      email: email, password: password);

  // create a new document user for the user with uid
  await DatabaseService(uid: result.user.uid).updateUserDataSelf(
      true,
      role,
      nama,
      keuskupan,
      kevikepan,
      paroki,
      '',
      DateTime.now(),
      DateTime.now());

  tempApp.delete();
  return 'OK';
} catch (e) {
  print(e.toString());
  return null;
}
}

以上代码适用于firebase_core: ^0.5.0firebase_auth: ^0.18.0+1