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 C ++

Bạn có thể sử dụng Xác thực Firebase để cho phép người dùng đăng nhập vào ứng dụng 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 ứng dụng của bạn.

Kết nối dự án C ++ của bạn với Firebase

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

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

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

  • Trong dự án cấp của bạn build.gradle tập tin, hãy chắc chắn để bao gồm kho Maven của Google trong cả hai bạn buildscriptallprojects phần.

  • Thêm SDK Firebase C ++ vào dự án C ++ của bạn.

Lưu ý rằng việc thêm Firebase vào dự án C ++ 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 C ++ đ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 đó di chuyển chúng vào dự án C ++ 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ý ứng dụng 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 CreateUserWithEmailAndPassword :

firebase::Future<firebase::auth::User*> result =
    auth->CreateUserWithEmailAndPassword(email, password);

Bạn có thể kiểm tra trạng thái của hoạt động tạo tài khoản bằng cách đăng ký một cuộc gọi lại trên đối tượng CreateUserWithEmailAndPasswordLastResult Future, hoặc nếu bạn đang viết một trò chơi hoặc ứng dụng với một số loại vòng lặp cập nhật định kỳ, bằng cách thăm dò trạng thái trong vòng cập nhật.

Ví dụ: sử dụng Tương lai:

firebase::Future<firebase::auth::User*> result =
    auth->CreateUserWithEmailAndPasswordLastResult();

// The lambda has the same signature as the callback function.
result.OnCompletion(
    [](const firebase::Future<firebase::auth::User*>& result,
       void* user_data) {
      // `user_data` is the same as &my_program_context, below.
      // Note that we can't capture this value in the [] because std::function
      // is not supported by our minimum compiler spec (which is pre C++11).
      MyProgramContext* program_context =
          static_cast<MyProgramContext*>(user_data);

      // Process create user result...
      (void)program_context;
    },
    &my_program_context);

Hoặc, để sử dụng tính năng thăm dò, hãy làm điều gì đó như ví dụ sau trong vòng lặp cập nhật trò chơi của bạn:

firebase::Future<firebase::auth::User*> result =
    auth->CreateUserWithEmailAndPasswordLastResult();
if (result.status() == firebase::kFutureStatusComplete) {
  if (result.error() == firebase::auth::kAuthErrorNone) {
    firebase::auth::User* user = *result.result();
    printf("Create user succeeded for email %s\n", user->email().c_str());
  } else {
    printf("Created user failed with error '%s'\n", result.error_message());
  }
}

Đă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 SignInWithEmailAndPassword :

firebase::Future<firebase::auth::User*> result =
    auth->SignInWithEmailAndPassword(email, password);

Nhận kết quả của thao tác đăng nhập giống như cách bạn nhận được kết quả đăng ký.

Đặt trình nghe trạng thái xác thực và nhận dữ liệu tài khoản

Để 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 lắng nghe vào đối tượng xác thực chung. Trình nghe 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 lắng nghe chỉ chạy sau khi đối tượng xác thực được khởi tạo hoàn toàn và sau khi bất kỳ cuộc gọi mạng nào hoàn tất, đó là nơi tốt nhất để lấy thông tin về người dùng đã đăng nhập.

Tạo trình lắng nghe bằng cách triển khai lớp trừu tượng firebase::auth::AuthStateListener . Ví dụ: để tạo một trình nghe lấy thông tin về người dùng khi người dùng đăng nhập thành công:

class MyAuthStateListener : public firebase::auth::AuthStateListener {
 public:
  void OnAuthStateChanged(firebase::auth::Auth* auth) override {
    firebase::auth::User* user = auth->current_user();
    if (user != nullptr) {
      // User is signed in
      printf("OnAuthStateChanged: signed_in %s\n", user->uid().c_str());
      const std::string displayName = user->DisplayName();
      const std::string emailAddress = user->Email();
      const std::string photoUrl = user->PhotoUrl();
    } else {
      // User is signed out
      printf("OnAuthStateChanged: signed_out\n");
    }
    // ...
  }
};

Đính kèm trình nghe với phương thức AddAuthStateListener của đối tượng firebase::auth::Auth :

MyAuthStateListener state_change_listener;
auth->AddAuthStateListener(&state_change_listener);

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: