Geçici anonim hesaplar oluşturmak ve kullanmak için Firebase Authentication kullanabilirsiniz Firebase ile kimlik doğrulama. Bu geçici anonim hesaplar şu amaçlarla kullanılabilir: henüz uygulamanıza kaydolmamış kullanıcıların verilerle korunan verilerle çalışmasını sağlar izin verir. Anonim bir kullanıcı uygulamanıza kaydolmaya karar verirse: oturum açma kimlik bilgilerini anonimleştirerek koruma altındaki verilerle çalışmaya devam edebilmeleri için oturum açın.
Başlamadan önce
- Henüz yapmadıysanız Firebase'i Android projenize ekleyin.
-
Modül (uygulama düzeyinde) Gradle dosyanızda
(genellikle
<project>/<app-module>/build.gradle.kts
veya<project>/<app-module>/build.gradle
), Android için Firebase Authentication kitaplığına bağımlılığı ekleyin. Şunu kullanmanızı öneririz: Firebase Android BoM Kitaplık'ta sürüm oluşturmayı kontrol etmek içindependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.2.0")) // Add the dependency for the Firebase Authentication library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-auth") }
Firebase Android BoM kullanıldığında, Uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanacaktır.
(Alternatif) Firebase kitaplığı bağımlılıklarını kullanmadan BoM
Firebase BoM kullanmamayı seçerseniz her Firebase kitaplığı sürümünü belirtmeniz gerekir değerini alır.
Uygulamanızda birden çok Firebase kitaplığı kullanıyorsanız, kitaplık sürümlerini yönetmek için BoM kullanmanızı öneririz. Bu, tüm sürümlerin uyumlu olduğundan emin olun.
dependencies { // Add the dependency for the Firebase Authentication library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-auth:23.0.0") }
- Uygulamanızı henüz Firebase projenize bağlamadıysanız bunu Firebase konsolunda bulabilirsiniz.
- Anonim kimlik doğrulamayı etkinleştir:
- Firebase konsolunda Auth bölümünü açın.
- Sign-in Methods (Oturum Açma Yöntemleri) sayfasında, Anonymous (Anonim) oturum açma yöntemini kullanabilirsiniz.
- İsteğe bağlı: Projenizi Firebase Authentication with Identity Platform, otomatik temizlemeyi etkinleştirebilirsiniz. Zaman Bu ayarı etkinleştirdiğinizde, 30 günden daha eski anonim hesaplar otomatik olarak silindi. Otomatik temizlemenin etkin olduğu projelerde anonim kimlik doğrulama kullanım sınırlarına veya faturalandırma kotalarına dahil edilir. Görüntüleyin Otomatik temizlik.
Firebase ile anonim olarak kimlik doğrulama
Oturumu kapalı olan bir kullanıcı, Firebase'de, aşağıdaki adımları uygulayarak kullanıcının anonim olarak oturum açmasını sağlayın:
- Etkinliğinizin
onCreate
yönteminde paylaşılan örneği alın şuFirebaseAuth
nesnesini içeriyor:Kotlin+KTX
private lateinit var auth: FirebaseAuth // ... // Initialize Firebase Auth auth = Firebase.auth
Java
private FirebaseAuth mAuth; // ... // Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
- Etkinliğinizi başlatırken, kullanıcının oturum açmış olup olmadığını kontrol edin:
Kotlin+KTX
public override fun onStart() { super.onStart() // Check if user is signed in (non-null) and update UI accordingly. val currentUser = auth.currentUser updateUI(currentUser) }
Java
@Override public void onStart() { super.onStart(); // Check if user is signed in (non-null) and update UI accordingly. FirebaseUser currentUser = mAuth.getCurrentUser(); updateUI(currentUser); }
- Son olarak, anonim olarak oturum açmak için
signInAnonymously
adlı kişiyi çağırın kullanıcı:Kotlin+KTX
auth.signInAnonymously() .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInAnonymously:success") val user = auth.currentUser updateUI(user) } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInAnonymously:failure", task.exception) Toast.makeText( baseContext, "Authentication failed.", Toast.LENGTH_SHORT, ).show() updateUI(null) } }
Java
mAuth.signInAnonymously() .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInAnonymously:success"); FirebaseUser user = mAuth.getCurrentUser(); updateUI(user); } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInAnonymously:failure", task.getException()); Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } } });
getCurrentUser
yöntemini kullanabilirsiniz.
Anonim bir hesabı kalıcı hesaba dönüştürme
Anonim bir kullanıcı uygulamanıza kaydolduğunda, bu kişilerin uygulamanızı veya oyununuzu yeni hesabıyla çalışmaya devam edebilir. Örneğin, Kullanıcının kaydolmadan önce alışveriş sepetine eklediği öğeleri yapma Yeni hesabının alışveriş sepetinde bulunabilir. Bunun için aşağıdaki adımları uygulayın: için şu adımları izleyin:
- Kullanıcı kaydolduğunda, kullanıcının
en az bir yetkili sağlayıcıdan birini çağırarak
FirebaseAuth.signInWith
yöntem. Örneğin, kullanıcının Google kimliği jetonunu alın. Facebook erişim jetonu veya e-posta adresi ve şifre. Yeni kimlik doğrulama sağlayıcı için bir
AuthCredential
alın:Google ile Oturum Açma
Kotlin+KTX
val credential = GoogleAuthProvider.getCredential(googleIdToken, null)
Java
AuthCredential credential = GoogleAuthProvider.getCredential(googleIdToken, null);
Facebook'a Giriş
Kotlin+KTX
val credential = FacebookAuthProvider.getCredential(token.token)
Java
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
E-posta şifresiyle oturum açma
Kotlin+KTX
val credential = EmailAuthProvider.getCredential(email, password)
Java
AuthCredential credential = EmailAuthProvider.getCredential(email, password);
AuthCredential
nesnesini oturum açan kullanıcının cihazına iletinlinkWithCredential
yöntemi:Kotlin+KTX
auth.currentUser!!.linkWithCredential(credential) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { Log.d(TAG, "linkWithCredential:success") val user = task.result?.user updateUI(user) } else { Log.w(TAG, "linkWithCredential:failure", task.exception) Toast.makeText( baseContext, "Authentication failed.", Toast.LENGTH_SHORT, ).show() updateUI(null) } }
Java
mAuth.getCurrentUser().linkWithCredential(credential) .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { Log.d(TAG, "linkWithCredential:success"); FirebaseUser user = task.getResult().getUser(); updateUI(user); } else { Log.w(TAG, "linkWithCredential:failure", task.getException()); Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } } });
linkWithCredential
çağrısı başarılı olursa kullanıcının yeni hesabı:
Anonim hesabın Firebase verilerine erişebilir.
Otomatik temizleme
Projenizi Firebase Authentication with Identity Platform sürümüne yükselttiyseniz şunları yapabilirsiniz: Firebase konsolunda otomatik temizlemeyi etkinleştirin. Bu özelliği etkinleştirdiğinizde Firebase'in 30 günden daha eski anonim hesapları otomatik olarak silmesine olanak tanır. Otomatik kullanılan projelerde temizlik etkin olduğunda, anonim kimlik doğrulama kullanım sınırlarına veya faturalandırma kotalarına dahil edilmez.
- Otomatik temizleme özelliği etkinleştirildikten sonra oluşturulan anonim hesaplar otomatik olarak silinebilir oluşturulduktan 30 gün sonra herhangi bir zamanda silinir.
- Mevcut anonim hesaplar, 30 gün sonra otomatik olarak silinebilir. etkinleştirebilirsiniz.
- Otomatik temizlemeyi kapatırsanız silinmesi planlanan tüm anonim hesaplar kalır silinmesi planlandı.
- "Yükseltme" seçeneğini belirlerseniz herhangi bir oturum açma yöntemine bağlayarak anonim bir hesap üzerinde çalışırsanız otomatik olarak silinmez.
Bu özelliği etkinleştirmeden önce kaç kullanıcının etkileneceğini görmek istiyorsanız ve
projenizi Firebase Authentication with Identity Platform sürümüne yükselttiyseniz şuna göre filtreleyebilirsiniz:
Cloud'da is_anon
Günlük Kaydı.
Sonraki adımlar
Kullanıcılar artık Firebase ile kimlik doğrulaması yapabildiğine göre Firebase veritabanınızdaki verileri kullanarak Firebase kuralları.