Xác thực bằng Firebase bằng Tài khoản dựa trên mật khẩu trên Flutter

Bạn có thể sử dụng tính năng Xác thực Firebase để cho phép người dùng xác thực bằng Firebase bằng địa chỉ email và mật khẩu.

Trước khi bắt đầu

  1. Làm theo các bước trong hướng dẫn Bắt đầu nếu bạn chưa làm việc này.

  2. Bật tính năng đăng nhập bằng email/mật khẩu:

    • Trong phần Xác thực của bảng điều khiển của Firebase, hãy mở Phương thức đăng nhập .
    • Từ trang Phương thức đăng nhập, bật tính năng Đăng nhập bằng email/mật khẩu rồi nhấp vào Lưu.

Tạo tài khoản dựa trên mật khẩu

Để tạo một tài khoản người dùng mới có mật khẩu, hãy gọi createUserWithEmailAndPassword() phương thức:

try {
  final credential = await FirebaseAuth.instance.createUserWithEmailAndPassword(
    email: emailAddress,
    password: password,
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'weak-password') {
    print('The password provided is too weak.');
  } else if (e.code == 'email-already-in-use') {
    print('The account already exists for that email.');
  }
} catch (e) {
  print(e);
}

Thông thường, bạn sẽ làm việc này từ màn hình đăng ký của ứng dụng. Khi một người dùng mới đăng ký bằng biểu mẫu đăng ký của ứng dụng, hoàn tất mọi quy trình xác thực tài khoản mới các bước mà ứng dụng của bạn yêu cầu, chẳng hạn như xác minh mật khẩu của tài khoản mới được nhập chính xác và đáp ứng các yêu cầu về độ phức tạp của bạn.

Nếu tài khoản mới được tạo thành công, người dùng cũng được đăng nhập. Nếu bạn đang theo dõi các thay đổi trong trạng thái xác thực, đây là một sự kiện sẽ được gửi đến người nghe của bạn.

Sau khi tạo tài khoản mới, bạn có thể Xác minh địa chỉ email của người dùng.

Đăng nhập người dùng bằng địa chỉ email và mật khẩu

Các bước để đăng nhập vào người dùng bằng mật khẩu tương tự như các bước để tạo tài khoản mới. Trên màn hình đăng nhập của ứng dụng, hãy gọi signInWithEmailAndPassword():

try {
  final credential = await FirebaseAuth.instance.signInWithEmailAndPassword(
    email: emailAddress,
    password: password
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'user-not-found') {
    print('No user found for that email.');
  } else if (e.code == 'wrong-password') {
    print('Wrong password provided for that user.');
  }
}

Các bước tiếp theo

Sau khi người dùng tạo một tài khoản mới, tài khoản này sẽ được lưu trữ như một phần của dự án Firebase và có thể được dùng để xác định người dùng trên mọi ứng dụng trong dự án, bất kể người dùng đã sử dụng phương thức đăng nhập nào.

Trong ứng dụng của mình, bạn có thể lấy thông tin hồ sơ cơ bản của người dùng từ Đối tượng User. Xem phần Quản lý người dùng.

Trong Cơ sở dữ liệu theo thời gian thực của Firebase và Quy tắc bảo mật của Cloud Storage, bạn có thể lấy mã nhận dạng người dùng duy nhất của người dùng đã đăng nhập từ biến auth rồi sử dụng mã đó để kiểm soát loại dữ liệu mà người dùng có thể truy cập.

Bạn có thể cho phép người dùng đăng nhập vào ứng dụng của mình bằng nhiều phương thức xác thực nhà cung cấp bằng cách liên kết thông tin đăng nhập của nhà cung cấp dịch vụ xác thực) với tài khoản người dùng hiện có.

Để đăng xuất một người dùng, hãy gọi signOut():

await FirebaseAuth.instance.signOut();