Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

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

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

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

Firebase Authentication'ı kullanmadan önce şunları yapmanız gerekir:

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

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

  • Proje düzeyindeki build.gradle dosyanızda, hem buildscript hem de allprojects bölümlerinize Google'ın Maven deposunu dahil ettiğinizden emin olun.

  • Firebase C ++ SDK'sını C ++ projenize ekleyin.

Firebase'i C ++ projenize eklemenin hem Firebase konsolunda hem de açık C ++ projenizde görevler içerdiğini unutmayın (örneğin, Firebase yapılandırma dosyalarını konsoldan indirir, ardından bunları C ++ projenize taşırsınız).

Yeni kullanıcılar kaydedin

Yeni kullanıcıların e-posta adreslerini ve parolalarını kullanarak uygulamanıza kaydolmaları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ğrulayın, ardından bunları CreateUserWithEmailAndPassword yöntemine CreateUserWithEmailAndPassword :

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

Hesap oluşturma işleminin durumunu, CreateUserWithEmailAndPasswordLastResult Future nesnesine bir geri arama kaydederek veya bir tür periyodik güncelleme döngüsüne sahip bir oyun veya uygulama yazıyorsanız, güncelleme döngüsündeki durumu yoklayarak kontrol edebilirsiniz.

Örneğin, bir Gelecek kullanmak:

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 örnekte olduğu gibi 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ıları oturum açın

Mevcut kullanıcıların e-posta adreslerini ve şifrelerini kullanarak oturum açmalarına izin veren bir form oluşturun. Bir kullanıcı formu tamamladığında, SignInWithEmailAndPassword yöntemini çağırın:

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

Oturum açma işleminin sonucunu, kayıt sonucunu aldığınız şekilde 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ğ çağrısı tamamlandıktan sonra çalıştığından, oturum açmış kullanıcı hakkında bilgi almak için en iyi yerdir.

firebase::auth::AuthStateListener soyut sınıfını uygulayarak dinleyiciyi oluşturun. Ö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");
    }
    // ...
  }
};

Dinleyiciyi firebase::auth::Auth nesnesinin AddAuthStateListener yöntemiyle AddAuthStateListener :

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

Sonraki adımlar

Diğer kimlik sağlayıcıları ve anonim misafir hesapları için nasıl destek ekleneceğini öğrenin: