Sen başlamadan önce
- Firebase'i C ++ projenize ekleyin .
- Projenizin sunucu anahtarlarını alın:
- Projenizin ayarlarında Hizmet Hesapları sayfasına gidin.
- Hizmet Hesapları sayfasının Firebase Admin SDK bölümünün altındaki Yeni Özel Anahtar Oluştur'u tıklayın.
- Yeni hizmet hesabının genel / özel anahtar çifti otomatik olarak bilgisayarınıza kaydedilir. Bu dosyayı kimlik doğrulama sunucunuza kopyalayın.
Firebase ile kimlik doğrulama
Auth
sınıfı, tüm API çağrıları için ağ geçididir.- Auth ve App başlık dosyalarını ekleyin:
#include "firebase/app.h" #include "firebase/auth.h"
- 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__)
- Edinme
firebase::auth::Auth
sizin için sınıffirebase::App
.App
veAuth
arasında bire bir eşleme vardır.firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
Auth::SignInWithCustomToken
doğrulama sunucunuzdaki belirteçle Auth::SignInWithCustomToken
arayın.- Kullanıcılar uygulamanızda oturum açtıklarında, oturum açma kimlik bilgilerini (örneğin, kullanıcı adı ve şifreleri) kimlik doğrulama sunucunuza gönderin. Sunucunuz kimlik bilgilerini kontrol eder ve geçerliyse özel bir belirteç döndürür.
- Kimlik doğrulama sunucunuzdan özel belirteci aldıktan sonra, kullanıcıda oturum
Auth::SignInWithCustomToken
içinAuth::SignInWithCustomToken
:firebase::Future<firebase::auth::User*> result = auth->SignInWithCustomToken(custom_token);
- Programınız düzenli çalışır (saniyede 30 veya 60 kez söylemek) o bir güncelleme döngüsü var ise birlikte güncelleme başına bir kez, sonuçları kontrol edebilirsiniz
Auth::SignInWithCustomTokenLastResult
program olay sürülüyorsafirebase::Future<firebase::auth::User*> result = auth->SignInWithCustomTokenLastResult(); 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()); } }
Ya da, tercih edilebilir: kayıt Gelecek için bir geri arama .
Sonraki adımlar
Bir kullanıcı ilk kez oturum açtıktan sonra, yeni bir kullanıcı hesabı oluşturulur ve oturum açan kullanıcı kimlik bilgilerine (yani kullanıcı adı ve parolası, telefon numarası veya kimlik doğrulama sağlayıcı bilgileri) bağlanır. Bu yeni hesap, Firebase projenizin bir parçası olarak depolanır ve kullanıcının nasıl oturum açtığına bakılmaksızın projenizdeki her uygulamada bir kullanıcıyı tanımlamak için kullanılabilir.
Uygulamalarınızda, kullanıcının temel profil bilgilerini
firebase::auth::User
nesnesinden alabilirsiniz:firebase::auth::User* user = auth->current_user(); if (user != nullptr) { std::string name = user->display_name(); std::string email = user->email(); std::string photo_url = user->photo_url(); // The user's ID, unique to the Firebase project. // Do NOT use this value to authenticate with your backend server, // if you have one. Use firebase::auth::User::Token() instead. std::string uid = user->uid(); }
Firebase Realtime Database ve Cloud Storage Güvenlik Kurallarınızda , oturum
auth
kullanıcının benzersiz kullanıcı kimliğiniauth
değişkeninden alabilir ve bir kullanıcının hangi verilere erişebileceğini kontrol etmek için kullanabilirsiniz.
Yetkilendirme sağlayıcı kimlik bilgilerini mevcut bir kullanıcı hesabına bağlayarak , kullanıcıların birden çok kimlik doğrulama sağlayıcısı kullanarak uygulamanızda oturum açmasına izin verebilirsiniz .
Bir kullanıcının oturumunu kapatmak için SignOut()
arayın:
auth->SignOut();