Kullanıcıların uygulamanızda oturum açmalarına izin vermek için Firebase Authentication kullanabilirsiniz e-posta adresi ve şifreyle oturum açma gibi diğer oturum açma yöntemlerini ve Google ile Oturum Açma ve Facebook Girişi gibi birleşik kimlik sağlayıcılar. Bu nasıl ekleyeceğinizi göstererek Firebase Authentication kullanmaya başlamanızı sağlar e-posta adresi ve şifreyle oturum açmanız gerekir.
C++ projenizi Firebase'e bağlayın
Kullanmadan önce Firebase Authentication Yapmanız gerekenler:
C++ projenizi kaydedin ve Firebase'i kullanacak şekilde yapılandırın.
C++ projeniz zaten Firebase'i kullanıyorsa zaten kayıtlıdır ve Firebase için yapılandırıldı.
Firebase C++ SDK'sını C++ projenize ekleyin.
Firebase'i C++ projenize eklediğinizde, hem Firebase konsolunda ve açık C++ projenizde (örneğin, Konsoldaki Firebase yapılandırma dosyalarını C++ projenize taşıyın).
Yeni kullanıcılar için kaydolma
Yeni kullanıcıların
bir e-posta adresi ve şifre kullanabilirsiniz. Bir kullanıcı formu doldurduğunda
tarafından verilen e-posta adresini ve şifreyi alıp
CreateUserWithEmailAndPassword
yöntem:
firebase::Future<firebase::auth::AuthResult> result =
auth->CreateUserWithEmailAndPassword(email, password);
Hesap oluşturma işleminin durumunu,
CreateUserWithEmailAndPasswordLastResult
Future nesnesinde bir geri çağırma ya da
düzenli güncelleme döngüsü olan bir oyun veya uygulama yazıyorsanız
durumu güncelleme döngüsünde yoklama.
Örneğin, Future (Gelecek) metriği kullanılarak:
firebase::Future<firebase::auth::AuthResult> result =
auth->CreateUserWithEmailAndPasswordLastResult();
// The lambda has the same signature as the callback function.
result.OnCompletion(
[](const firebase::Future<firebase::auth::AuthResult>& 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);
Alternatif olarak, yoklama özelliğini kullanmak için oyununuzun güncelleme döngüsü:
firebase::Future<firebase::auth::AuthResult> result =
auth->CreateUserWithEmailAndPasswordLastResult();
if (result.status() == firebase::kFutureStatusComplete) {
if (result.error() == firebase::auth::kAuthErrorNone) {
firebase::auth::AuthResult* auth_result = *result.result();
printf("Create user succeeded for email %s\n", auth_result.user.email().c_str());
} else {
printf("Created user failed with error '%s'\n", result.error_message());
}
}
Mevcut kullanıcıların oturumunu açma
Mevcut kullanıcıların e-posta adreslerini kullanarak oturum açmasına olanak tanıyan bir form oluşturun
ve şifre. Bir kullanıcı formu doldurduğunda
SignInWithEmailAndPassword
yöntem:
firebase::Future<firebase::auth::AuthResult> result =
auth->SignInWithEmailAndPassword(email, password);
Oturum açma işleminin sonucunu, kayıt sonucunu aldığınız şekilde alın.
Kimlik doğrulama durumu işleyicisi ayarlama ve hesap verilerini alma
Oturum açma ve oturum kapatma etkinliklerine yanıt vermek için global kimlik doğrulama nesnesini tanımlayın. Bu işleyici, kullanıcı her oturum açtığında çağrılır. kullanabilirsiniz. Çünkü işleyici, yalnızca kimlik doğrulama nesnesi ve tüm ağ çağrıları tamamlandıktan sonra bu hedef her zaman en iyi oturum açmış kullanıcıyla ilgili bilgileri almak için
firebase::auth::AuthStateListener
uygulayarak işleyici oluşturun
soyut sınıf. Örneğin, isim değişikliğinin
tam olarak
Kullanıcı başarıyla oturum açtığında kullanıcı:
class MyAuthStateListener : public firebase::auth::AuthStateListener {
public:
void OnAuthStateChanged(firebase::auth::Auth* auth) override {
firebase::auth::User user = auth.current_user();
if (user.is_valid()) {
// 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");
}
// ...
}
};
İşleyiciyi firebase::auth::Auth
nesnesinin
AddAuthStateListener
yöntemi:
MyAuthStateListener state_change_listener;
auth->AddAuthStateListener(&state_change_listener);
Sonraki adımlar
Diğer kimlik sağlayıcılar ve anonim konuklar için nasıl destek ekleyeceğinizi öğrenin hesaplar: