首页 > 解决方案 > 在 Flutter 上使用电子邮件和密码进行 Firebase 身份验证的示例?

问题描述

第一次实施 Firebase Auth,这也是 Flutter 开发人员的新手,我希望使用电子邮件和密码,而不是 Google 登录。我看到的唯一使用 Firebase 身份验证的例子是匿名的或与 Google 一起使用的。是否有资源/教程显示如何使用 signInWithEmailAndPassword 方法正确设置调用?

非常感谢!

标签: firebasefirebase-authenticationflutter

解决方案


在我的应用程序中,我有一个 auth 类,因为我不喜欢在我的小部件类中乱扔非小部件代码,但是如果你愿意,你可以在你的小部件类中添加这个代码。

在 auth.dart 我有:

import 'package:firebase_auth/firebase_auth.dart';

class Auth {
  final FirebaseAuth auth = FirebaseAuth.instance;

  Future<User> handleSignInEmail(String email, String password) async {
    UserCredential result =
        await auth.signInWithEmailAndPassword(email: email, password: password);
    final User user = result.user!;

    return user;
  }

  Future<User> handleSignUp(email, password) async {
    UserCredential result = await auth.createUserWithEmailAndPassword(
        email: email, password: password);
    final User user = result.user!;

    return user;
  }
}

然后在我的登录/注册屏幕中,我创建了我的 auth 类的一个实例:

var authHandler = new Auth();

最后,在我的登录按钮 onPressed 回调中,我有:

onPressed: () {
    authHandler.handleSignInEmail(emailController.text, passwordController.text)
    .then((FirebaseUser user) {
         Navigator.push(context, new MaterialPageRoute(builder: (context) => new HomePage()));
   }).catchError((e) => print(e));
} 

推荐阅读