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

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

Firebase ile kimlik doğrulaması yapmak için geçici anonim hesaplar oluşturmak ve kullanmak için Firebase Authentication'ı kullanabilirsiniz. Bu geçici anonim hesaplar, henüz uygulamanıza kaydolmamış kullanıcıların güvenlik kuralları tarafından korunan verilerle çalışmasına izin vermek için kullanılabilir. Anonim bir kullanıcı uygulamanıza kaydolmaya karar verirse, gelecekteki oturumlarda korunan verileriyle çalışmaya devam edebilmeleri için oturum açma kimlik bilgilerini anonim hesaba bağlayabilirsiniz .

Sen başlamadan önce

  1. Firebase'i C ++ projenize ekleyin .
  2. Proje düzeyindeki build.gradle dosyanızda, hem buildscript hem de tüm allprojects bölümlerinize Google'ın Maven deposunu dahil ettiğinizden emin olun.
  3. Uygulamanızı henüz Firebase projenize bağlamadıysanız, bunu Firebase konsolundan yapın .
  4. Anonim kimlik doğrulamayı etkinleştir:
    1. In Firebase konsoluna , Auth bölümünü açın.
    2. Oturum Açma Yöntemleri sayfasında, Anonim oturum açma yöntemini etkinleştirin.

Firebase ile anonim olarak kimlik doğrulayın

Oturumu kapatılmış bir kullanıcı, Firebase ile kimlik doğrulaması gerektiren bir uygulama özelliğini 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 ağ geçididir.
  1. Auth ve App başlık dosyalarını ekleyin:
    #include "firebase/app.h"
    #include "firebase/auth.h"
    
  2. Başlatma kodunuzda bir firebase::App sınıfı oluşturun.
    #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 . App ve Auth arasında bire bir eşleme vardır.
    firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
    
  • Auth::SignInAnonymously arayın.
    firebase::Future<firebase::auth::User*> result = auth->SignInAnonymously();
    
  • Programınızda düzenli olarak çalışan bir güncelleme döngüsü varsa (örneğin saniyede 30 veya 60 kez), sonuçları her güncellemede bir kez 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());
      }
    }
    
    ile kontrol edebilirsiniz Veya programınız olay odaklıysa, kaydolmayı tercih edebilirsiniz Gelecek için bir geri arama .
  • 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 ürününde kullanılabilir hale getirmek isteyebilirsiniz. hesabın alışveriş sepeti. Bunu yapmak için aşağıdaki adımları tamamlayın:

    1. Kullanıcı kaydolduğunda, Auth::SignInWith yöntemlerinden birini çağırmak dahil olmak üzere, kullanıcının kimlik doğrulama sağlayıcısı için oturum açma akışını tamamlayın. Örneğin, kullanıcının Google ID jetonunu, Facebook erişim jetonunu veya e-posta adresini ve şifresini alın.
    2. Yeni kimlik doğrulama sağlayıcısı için bir auth::Credential alın:

      Google ile Oturum Açma
      firebase::auth::Credential credential =
          firebase::auth::GoogleAuthProvider::GetCredential(google_id_token,
                                                            nullptr);
      
      Facebook Girişi
      firebase::auth::Credential credential =
          firebase::auth::FacebookAuthProvider::GetCredential(access_token);
      
      E-posta-şifre girişi
      firebase::auth::Credential credential =
          firebase::auth::EmailAuthProvider::GetCredential(email, password);
      
    3. auth::Credential nesnesini oturum açan kullanıcının LinkWithCredential yöntemine LinkWithCredential :

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

    LinkWithCredential çağrısı başarılı olursa kullanıcının yeni hesabı anonim hesabın Firebase verilerine erişebilir.

    Sonraki adımlar

    Artık kullanıcılar Firebase ile kimlik doğrulayabileceğine göre, Firebase kurallarını kullanarak Firebase veritabanınızdaki verilere erişimlerini kontrol edebilirsiniz.