Bạn có thể tích hợp Xác thực Firebase với một hệ thống xác thực tuỳ chỉnh bằng cách sửa đổi máy chủ xác thực để tạo ra mã thông báo đã ký tuỳ chỉnh khi người dùng đăng nhập thành công. Ứng dụng của bạn sẽ nhận được mã thông báo này và dùng mã thông báo đó để xác thực bằng Firebase.
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.
 - Cài đặt và định cấu hình Firebase Admin SDK. Hãy nhớ khởi chạy SDK bằng thông tin đăng nhập chính xác cho dự án Firebase của bạn.
 
Xác thực bằng Firebase
Khi người dùng đăng nhập vào ứng dụng của bạn, hãy gửi thông tin đăng nhập của họ (ví dụ: tên người dùng và mật khẩu) đến máy chủ xác thực của bạn. Máy chủ của bạn sẽ kiểm tra thông tin đăng nhập và nếu thông tin đó hợp lệ, máy chủ sẽ tạo mã thông báo Firebase tuỳ chỉnh rồi gửi mã thông báo đó trở lại ứng dụng của bạn.
Sau khi bạn nhận được mã thông báo tuỳ chỉnh từ máy chủ xác thực, hãy truyền mã thông báo đó đến
signInWithCustomToken()để đăng nhập người dùng:try { final userCredential = await FirebaseAuth.instance.signInWithCustomToken(token); print("Sign-in successful."); } on FirebaseAuthException catch (e) { switch (e.code) { case "invalid-custom-token": print("The supplied token is not a Firebase custom auth token."); break; case "custom-token-mismatch": print("The supplied token is for a different Firebase project."); break; default: print("Unknown error."); } }
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();