Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

C++ Kullanarak Anonim Olarak Firebase ile Kimlik Doğrulama

Firebase ile kimlik doğrulaması yapmak üzere geçici anonim hesaplar oluşturmak ve kullanmak için Firebase Authentication'ı kullanabilirsiniz. Bu geçici anonim hesaplar, uygulamanıza henüz kaydolmamış kullanıcıların güvenlik kurallarıyla korunan verilerle çalışmasına izin vermek için kullanılabilir. Anonim bir kullanıcı uygulama kaydolmak karar verirse yapabilirsiniz anonim hesabına oturum açma kimlik bilgilerini kendi bağlantı gelecek oturumlarda kendi korumalı verilerle çalışmak için devam edebilmesi için.

Sen başlamadan önce

  1. C ++ projeye Firebase ekleyin .
  2. Henüz Firebase projesine uygulamanızı bağlı değil varsa, gelen bunu Firebase konsoluna .
  3. Anonim yetkilendirmeyi etkinleştir:
    1. In Firebase konsoluna , Auth bölümünü açın.
    2. Yöntemler Oturum Açma sayfasında, Anonim oturum açma yöntemine sağlar.

Firebase ile anonim olarak kimlik doğrulaması yapın

Oturumu kapatmış bir kullanıcı, Firebase ile kimlik doğrulaması gerektiren bir uygulama özelliği kullandığında, aşağıdaki adımları tamamlayarak kullanıcıda anonim olarak oturum açın:

Auth sınıfı tüm API çağrıları için kapıdır.
  1. Auth ve App başlık dosyalarını ekleyin:
    #include "firebase/app.h"
    #include "firebase/auth.h"
    
  2. Senin başlatma kodunda, bir oluşturmak firebase::App sınıfı.
    #if defined(__ANDROID__)
      firebase::App* app =
          firebase::App::Create(firebase::AppOptions(), my_jni_env, my_activity);
    #else
      firebase::App* app = firebase::App::Create(firebase::AppOptions());
    #endif  // defined(__ANDROID__)
    
  3. Edinme firebase::auth::Auth sizin için sınıf firebase::App . Arasında bire-bir eşleme vardır App ve Auth .
    firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
    
  • Çağrı Auth::SignInAnonymously .
    firebase::Future<firebase::auth::User*> result = auth->SignInAnonymously();
    
  • Programınız düzenli çalışır (saniyede 30 veya 60 kez söylemek) o bir güncelleme döngüsü var ise, bir kere ile güncelleme başına sonuçları kontrol edebilirsiniz Auth::SignInAnonymouslyLastResult :
    firebase::Future<firebase::auth::User*> result =
        auth->SignInAnonymouslyLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      if (result.error() == firebase::auth::kAuthErrorNone) {
        firebase::auth::User* user = *result.result();
        printf("Sign in succeeded for `%s`\n", user->display_name().c_str());
      } else {
        printf("Sign in failed with error '%s'\n", result.error_message());
      }
    }
    
    program olayı tahrik edilmektedir Ya da, eğer tercih edebilir için Geleceğe bir geri arama kayıt .
  • Anonim bir hesabı kalıcı bir hesaba dönüştürün

    Anonim bir kullanıcı uygulamanıza kaydolduğunda, yeni hesaplarıyla çalışmalarına devam etmelerine izin vermek isteyebilirsiniz; örneğin, kullanıcının kaydolmadan önce alışveriş sepetine eklediği öğeleri yeni hesaplarında kullanılabilir hale getirmek isteyebilirsiniz. hesabın alışveriş sepeti. Bunu yapmak için aşağıdaki adımları tamamlayın:

    1. Kullanıcı kayıt oturum açma kullanıcının kimlik doğrulama sağlayıcısı yukarı için akış tamamlamak ancak birini çağırarak, dahil değil zaman Auth::SignInWith yöntemlerle. Örneğin, kullanıcının Google ID jetonunu, Facebook erişim jetonunu veya e-posta adresini ve şifresini alın.
    2. Bir alın auth::Credential yeni kimlik doğrulama sağlayıcısı için:

      Google Oturum Açma
      firebase::auth::Credential credential =
          firebase::auth::GoogleAuthProvider::GetCredential(google_id_token,
                                                            nullptr);
      
      Facebook Giriş
      firebase::auth::Credential credential =
          firebase::auth::FacebookAuthProvider::GetCredential(access_token);
      
      Email-şifre oturum açma
      firebase::auth::Credential credential =
          firebase::auth::EmailAuthProvider::GetCredential(email, password);
      
    3. Geçiş auth::Credential oturum açma kullanıcının nesneyi LinkWithCredential yöntemiyle:

      // Link the new credential to the currently active user.
      firebase::auth::User* current_user = auth->current_user();
      firebase::Future<firebase::auth::User*> result =
          current_user->LinkWithCredential(credential);
      

    Çağrısı Eğer LinkWithCredential başarılı, kullanıcının yeni hesap anonim hesabın Firebase verilere erişebilir.

    Sonraki adımlar

    Artık kullanıcılar Firebase ile kimlik doğrulaması ki, sen kullanarak Firebase veritabanındaki verilere erişimlerini kontrol edebilirsiniz Firebase kuralları .