Bạn có thể sử dụng tính năng Xác thực Firebase để tạo và sử dụng các tài khoản ẩn danh tạm thời nhằm xác thực bằng Firebase. Bạn có thể dùng những tài khoản tạm thời ẩn danh này để cho phép những người dùng chưa đăng ký ứng dụng của bạn làm việc với dữ liệu được bảo vệ bằng các quy tắc bảo mật. Nếu người dùng ẩn danh quyết định đăng ký ứng dụng của bạn, bạn có thể liên kết thông tin đăng nhập của họ với tài khoản ẩn danh để họ có thể tiếp tục làm việc với dữ liệu được bảo vệ trong các phiên sau này.
Trước khi bắt đầu
Nếu bạn chưa làm, hãy làm theo các bước trong hướng dẫn Bắt đầu.
Bật tính năng Đăng nhập ẩn danh:
- Trong mục Xác thực của bảng điều khiển Firebase, hãy mở trang Phương thức đăng nhập.
 - Trên trang Phương thức đăng nhập, hãy bật phương thức Đăng nhập ẩn danh rồi nhấp vào Lưu.
 
Xác thực bằng Firebase ẩn danh
Khi người dùng đã đăng xuất sử dụng một tính năng của ứng dụng yêu cầu xác thực bằng Firebase, hãy đăng nhập cho người dùng ẩn danh bằng cách gọi signInAnonymously():
try {
  final userCredential =
      await FirebaseAuth.instance.signInAnonymously();
  print("Signed in with temporary account.");
} on FirebaseAuthException catch (e) {
  switch (e.code) {
    case "operation-not-allowed":
      print("Anonymous auth hasn't been enabled for this project.");
      break;
    default:
      print("Unknown error.");
  }
}
Chuyển đổi tài khoản ẩn danh thành tài khoản vĩnh viễn
Khi một người dùng ẩn danh đăng ký ứng dụng của bạn, bạn có thể muốn cho phép họ tiếp tục công việc bằng tài khoản mới của họ. Ví dụ: bạn có thể muốn cung cấp các mặt hàng mà người dùng đã thêm vào giỏ hàng trước khi họ đăng ký trong giỏ hàng của tài khoản mới. Để làm như vậy, hãy hoàn tất các bước sau:
Khi người dùng đăng ký, hãy hoàn tất quy trình đăng nhập cho nhà cung cấp dịch vụ xác thực của người dùng cho đến khi gọi một trong các phương thức
signInWith, nhưng không bao gồm bước này. Ví dụ: lấy mã thông báo nhận dạng của Google, mã thông báo truy cập Facebook hoặc địa chỉ email và mật khẩu của người dùng.Nhận một đối tượng
Credentialcho trình cung cấp dịch vụ xác thực mới:// Google Sign-in final credential = GoogleAuthProvider.credential(idToken: idToken); // Email and password sign-in final credential = EmailAuthProvider.credential(email: emailAddress, password: password); // Etc.Truyền đối tượng
Credentialđến phương thứclinkWithCredential()của người dùng đăng nhập:try { final userCredential = await FirebaseAuth.instance.currentUser ?.linkWithCredential(credential); } on FirebaseAuthException catch (e) { switch (e.code) { case "provider-already-linked": print("The provider has already been linked to the user."); break; case "invalid-credential": print("The provider's credential is not valid."); break; case "credential-already-in-use": print("The account corresponding to the credential already exists, " "or is already linked to a Firebase User."); break; // See the API reference for the full list of error codes. default: print("Unknown error."); } ```
Nếu lệnh gọi đến linkWithCredential() thành công, tài khoản mới của người dùng có thể truy cập vào dữ liệu Firebase của tài khoản ẩn danh.
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ữ trong dự án Firebase của bạn và có thể dùng để xác định người dùng trên mọi ứng dụng trong dự án của bạn, bất kể người dùng đã sử dụng phương thức đăng nhập nào.
Trong các ứng dụng, bạn có thể lấy thông tin cơ bản về hồ sơ của người dùng từ đối tượng User. Hãy 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 Bộ nhớ đám mây, 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 và sử dụng mã nhận dạng đó để kiểm soát 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 bạn bằng nhiều trình cung cấp dịch vụ xác thực bằng cách liên kết thông tin đăng nhập của trình cung cấp dịch vụ xác thực với một tài khoản người dùng hiện có.
Để đăng xuất người dùng, hãy gọi signOut():
await FirebaseAuth.instance.signOut();