Google is committed to advancing racial equity for Black communities. See how.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Bắt đầu với Xác thực Firebase trong Unity

Bạn có thể sử dụng Xác thực Firebase để cho phép người dùng đăng nhập vào trò chơi của bạn bằng một hoặc nhiều phương thức đăng nhập, bao gồm đăng nhập bằng địa chỉ email và mật khẩu và các nhà cung cấp danh tính được liên kết như Đăng nhập bằng Google và Đăng nhập Facebook. Hướng dẫn này giúp bạn bắt đầu với Xác thực Firebase bằng cách chỉ cho bạn cách thêm địa chỉ email và mật khẩu đăng nhập vào trò chơi của bạn.

Trước khi bắt đầu

Trước khi có thể sử dụng Xác thực Firebase , bạn cần:

  • Đăng ký dự án Unity của bạn và định cấu hình nó để sử dụng Firebase.

    • Nếu dự án Unity của bạn đã sử dụng Firebase thì dự án đó đã được đăng ký và định cấu hình cho Firebase.

    • Nếu bạn không có dự án Unity, bạn có thể tải xuống một ứng dụng mẫu .

  • Thêm SDK Unity Firebase (cụ thể là FirebaseAuth.unitypackage ) vào dự án Unity của bạn.

Lưu ý rằng việc thêm Firebase vào dự án Unity của bạn liên quan đến các tác vụ trong bảng điều khiển Firebase và trong dự án Unity đang mở của bạn (ví dụ: bạn tải xuống tệp cấu hình Firebase từ bảng điều khiển, sau đó chuyển chúng vào dự án Unity của bạn).

Đăng ký người dùng mới

Tạo biểu mẫu cho phép người dùng mới đăng ký trò chơi của bạn bằng địa chỉ email và mật khẩu của họ. Khi người dùng hoàn thành biểu mẫu, hãy xác thực địa chỉ email và mật khẩu do người dùng cung cấp, sau đó chuyển chúng đến phương thức CreateUserWithEmailAndPasswordAsync :

auth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("CreateUserWithEmailAndPasswordAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("CreateUserWithEmailAndPasswordAsync encountered an error: " + task.Exception);
    return;
  }

  // Firebase user has been created.
  Firebase.Auth.FirebaseUser newUser = task.Result;
  Debug.LogFormat("Firebase user created successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

Đăng nhập người dùng hiện có

Tạo một biểu mẫu cho phép người dùng hiện tại đăng nhập bằng địa chỉ email và mật khẩu của họ. Khi người dùng hoàn thành biểu mẫu, hãy gọi phương thức SignInWithEmailAndPasswordAsync :

auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("SignInWithEmailAndPasswordAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("SignInWithEmailAndPasswordAsync encountered an error: " + task.Exception);
    return;
  }

  Firebase.Auth.FirebaseUser newUser = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

Đặt trình xử lý sự kiện thay đổi trạng thái xác thực và lấy dữ liệu người dùng

Để phản hồi các sự kiện đăng nhập và đăng xuất, hãy đính kèm một trình xử lý sự kiện vào đối tượng xác thực chung. Trình xử lý này được gọi bất cứ khi nào trạng thái đăng nhập của người dùng thay đổi. Bởi vì trình xử lý chỉ chạy sau khi đối tượng xác thực được khởi tạo hoàn toàn và sau khi hoàn thành bất kỳ cuộc gọi mạng nào, nên đây là nơi tốt nhất để lấy thông tin về người dùng đã đăng nhập.

Đăng ký trình xử lý sự kiện bằng trường StateChanged của đối tượng FirebaseAuth . Khi người dùng đăng nhập thành công, bạn có thể nhận thông tin về người dùng trong trình xử lý sự kiện.

void InitializeFirebase() {
  auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
  auth.StateChanged += AuthStateChanged;
  AuthStateChanged(this, null);
}

void AuthStateChanged(object sender, System.EventArgs eventArgs) {
  if (auth.CurrentUser != user) {
    bool signedIn = user != auth.CurrentUser && auth.CurrentUser != null;
    if (!signedIn && user != null) {
      DebugLog("Signed out " + user.UserId);
    }
    user = auth.CurrentUser;
    if (signedIn) {
      DebugLog("Signed in " + user.UserId);
      displayName = user.DisplayName ?? "";
      emailAddress = user.Email ?? "";
      photoUrl = user.PhotoUrl ?? "";
    }
  }
}

Bước tiếp theo

Tìm hiểu cách thêm hỗ trợ cho các nhà cung cấp danh tính khác và tài khoản khách ẩn danh: