Catch up on everything we announced at this year's Firebase Summit. Learn more

C++'da Firebase Authentication'ı Kullanmaya Başlayın

Kullanıcıların, e-posta adresi ve şifre ile oturum açma dahil olmak üzere bir veya daha fazla oturum açma yöntemini ve Google ile Oturum Açma ve Facebook Oturum Açma gibi birleşik kimlik sağlayıcıları kullanarak uygulamanızda oturum açmasına izin vermek için Firebase Kimlik Doğrulaması'nı kullanabilirsiniz. Bu eğitici, uygulamanıza e-posta adresi ve parola ile oturum açmayı nasıl ekleyeceğinizi göstererek Firebase Authentication'ı kullanmaya başlamanızı sağlar.

C++ projenizi Firebase'e bağlayın

Eğer kullanmadan önce Firebase Authentication , yapmanız gerekenler:

  • C++ projenizi kaydedin ve Firebase'i kullanacak şekilde yapılandırın.

    C++ projeniz zaten Firebase kullanıyorsa, Firebase için zaten kayıtlı ve yapılandırılmıştır.

  • Ekle Firebase C ++ SDK sizin C ++ projeye.

Not sizin C'ye Firebase ekleyerek bu ++ projesi hem görevleri kapsar Firebase konsoluna (örneğin, daha sonra, konsoldan Firebase yapılandırma dosyalarını indirmek için C ++ projesi içine taşıyabilirsiniz) ve açık C ++ projede.

Yeni kullanıcılar kaydolun

Yeni kullanıcıların e-posta adreslerini ve parolalarını kullanarak uygulamanıza kaydolmasına olanak tanıyan bir form oluşturun. Bir kullanıcı formu tamamladığında, kullanıcı tarafından sağlanan e-posta adresini ve şifreyi doğrulamak ardından onları geçmek CreateUserWithEmailAndPassword yöntemiyle:

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

Ya bir geri arama kaydederek hesap oluşturma işleminin durumunu kontrol edebilirsiniz CreateUserWithEmailAndPasswordLastResult Eğer yoklama tarafından, periyodik güncelleme döngüsü çeşit güncelleme döngü içinde durumunu bir oyun veya uygulamayı yazıyorsanız, Gelecek nesne veya.

Örneğin, bir Gelecek kullanarak:

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);

Veya yoklamayı kullanmak için oyununuzun güncelleme döngüsünde aşağıdaki örneğe benzer bir şey yapı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());
  }
}

Mevcut kullanıcılarda oturum açın

Mevcut kullanıcıların e-posta adreslerini ve parolalarını kullanarak oturum açmalarına olanak tanıyan bir form oluşturun. Bir kullanıcı formu tamamladığında, çağrı SignInWithEmailAndPassword yöntemi:

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

Oturum açma işleminin sonucunu, kayıt sonucunu aldığınız gibi alın.

Bir kimlik doğrulama durumu dinleyicisi ayarlayın ve hesap verilerini alın

Oturum açma ve oturum kapatma olaylarına yanıt vermek için genel kimlik doğrulama nesnesine bir dinleyici ekleyin. Bu dinleyici, kullanıcının oturum açma durumu her değiştiğinde çağrılır. Dinleyici yalnızca kimlik doğrulama nesnesi tamamen başlatıldıktan ve herhangi bir ağ araması tamamlandıktan sonra çalıştığından, oturum açmış kullanıcı hakkında bilgi almak için en iyi yerdir.

Uygulayarak dinleyici oluşturun firebase::auth::AuthStateListener soyut sınıfı. Örneğin, bir kullanıcı başarıyla oturum açtığında kullanıcı hakkında bilgi alan bir dinleyici oluşturmak için:

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");
    }
    // ...
  }
};

İle dinleyiciyi takın firebase::auth::Auth nesnenin AddAuthStateListener yöntemi:

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

Sonraki adımlar

Diğer kimlik sağlayıcıları ve anonim konuk hesapları için nasıl destek ekleyeceğinizi öğrenin: