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, uygulamanıza henüz 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 edebilmesi için oturum açma kimlik bilgilerini anonim hesaba bağlayabilirsiniz .
Sen başlamadan önce
- Henüz yapmadıysanız, Firebase'i Android projenize ekleyin .
- Modül (uygulama düzeyi) Gradle dosyanızda (genellikle
<project>/<app-module>/build.gradle
), Firebase Authentication Android kitaplığı için bağımlılığı ekleyin. Kitaplık sürüm oluşturmayı kontrol etmek için Firebase Android BoM'yi kullanmanızı öneririz.Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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-ktx' }
Firebase Android BoM'yi kullandığınızda, uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanır.
(Alternatif) BoM kullanmadan Firebase kitaplığı bağımlılıkları ekleyin
Firebase BoM'yi kullanmamayı seçerseniz, her bir Firebase kitaplığı sürümünü bağımlılık satırında belirtmeniz gerekir.
Uygulamanızda birden çok Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için tüm sürümlerin uyumlu olmasını sağlayan BoM'yi kullanmanızı kesinlikle öneririz.
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-ktx:22.0.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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'yi kullandığınızda, uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanır.
(Alternatif) BoM kullanmadan Firebase kitaplığı bağımlılıkları ekleyin
Firebase BoM'yi kullanmamayı seçerseniz, her bir Firebase kitaplığı sürümünü bağımlılık satırında belirtmeniz gerekir.
Uygulamanızda birden çok Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için tüm sürümlerin uyumlu olmasını sağlayan BoM'yi kullanmanızı kesinlikle öneririz.
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:22.0.0' }
- Uygulamanızı henüz Firebase projenize bağlamadıysanız, bunu Firebase konsolundan yapın.
- Anonim kimlik doğrulamayı etkinleştir:
- Firebase konsolunda Kimlik Doğrulama bölümünü açın.
- Oturum Açma Yöntemleri sayfasında, Anonim oturum açma yöntemini etkinleştirin.
- İsteğe bağlı : Projenizi Firebase Authentication with Identity Platform'a yükselttiyseniz otomatik temizlemeyi etkinleştirebilirsiniz. Bu ayarı etkinleştirdiğinizde, 30 günden eski anonim hesaplar otomatik olarak silinecektir. Otomatik temizlemenin etkinleştirildiği projelerde, anonim kimlik doğrulama artık kullanım limitlerine veya faturalandırma kotalarına dahil edilmeyecektir. Bkz. Otomatik temizleme .
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ının oturumunu anonim olarak açın:
- Etkinliğinizin
onCreate
yönteminde,FirebaseAuth
nesnesinin paylaşılan örneğini alın:Kotlin+KTX
private lateinit var auth: FirebaseAuth // ... // Initialize Firebase Auth auth = Firebase.auth
Java
private FirebaseAuth mAuth; // ... // Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
- Aktivitenizi başlatırken, kullanıcının şu anda 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 bir kullanıcı olarak oturum açmak için
signInAnonymously
öğesini arayın:Oturum açma başarılı olursa, kullanıcının hesap verilerini almak içinKotlin+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ı bir hesaba dönüştürün
Anonim bir kullanıcı uygulamanıza kaydolduğunda, yeni hesabıyla çalışmalarına devam etmesine izin vermek isteyebilirsiniz; örneğin, kullanıcının kaydolmadan önce alışveriş sepetine eklediği ürünleri yeni hesabında kullanılabilir hale getirmek isteyebilirsiniz. hesabın alışveriş sepeti. Bunu yapmak için aşağıdaki adımları tamamlayın:
- Kullanıcı kaydolduğunda, kullanıcının kimlik doğrulama sağlayıcısı için oturum açma akışını
FirebaseAuth.signInWith
yöntemlerinden birini çağırana kadar tamamlayın, ancak bu işlemi hariç tutun. Örneğin, kullanıcının Google Kimliği jetonunu, Facebook erişim jetonunu veya e-posta adresini ve şifresini alın. Yeni kimlik doğrulama sağlayıcısı için bir
AuthCredential
alın:Google'da Oturum Açma
Kotlin+KTX
val credential = GoogleAuthProvider.getCredential(googleIdToken, null)
Java
AuthCredential credential = GoogleAuthProvider.getCredential(googleIdToken, null);
Facebook Girişi
Kotlin+KTX
val credential = FacebookAuthProvider.getCredential(token.token)
Java
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
E-posta-şifre girişi
Kotlin+KTX
val credential = EmailAuthProvider.getCredential(email, password)
Java
AuthCredential credential = EmailAuthProvider.getCredential(email, password);
AuthCredential
nesnesini, oturum açan kullanıcınınlinkWithCredential
yöntemine iletin: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'a yükselttiyseniz, Firebase konsolunda otomatik temizlemeyi etkinleştirebilirsiniz. Bu özelliği etkinleştirdiğinizde, Firebase'in 30 günden eski anonim hesapları otomatik olarak silmesine izin vermiş olursunuz. Otomatik temizlemenin etkinleştirildiği projelerde, anonim kimlik doğrulama, kullanım sınırlarına veya faturalandırma kotalarına dahil edilmeyecektir.
- Otomatik temizleme etkinleştirildikten sonra oluşturulan tüm anonim hesaplar, oluşturulduktan 30 gün sonra herhangi bir zamanda otomatik olarak silinebilir.
- Otomatik temizleme etkinleştirilmeden önce oluşturulan anonim hesaplar, otomatik temizleme etkinleştirildikten 30 gün sonra otomatik olarak silinmeye uygun olacaktır.
- Otomatik temizlemeyi kapatırsanız, silinmesi programlanan tüm anonim hesaplar, silinmek üzere programlanmış olarak kalır. Bu hesaplar, kullanım limitlerine veya faturalandırma kotalarına dahil edilmez.
- Anonim bir hesabı herhangi bir oturum açma yöntemine bağlayarak "yükseltirseniz", hesap 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'a yükselttiyseniz, Cloud Logging'de
is_anon
göre filtreleme yapabilirsiniz.Sonraki adımlar
Artık kullanıcılar Firebase ile kimlik doğrulaması yapabildiğine göre, Firebase kurallarını kullanarak Firebase veritabanınızdaki verilere erişimlerini kontrol edebilirsiniz.
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2023-06-10 UTC.
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"İhtiyacım olan bilgiler yok" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Çok karmaşık / çok fazla adım var" },{ "type": "thumb-down", "id": "outOfDate", "label":"Güncel değil" },{ "type": "thumb-down", "id": "translationIssue", "label":"Çeviri sorunu" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Örnek veya kod sorunu" },{ "type": "thumb-down", "id": "otherDown", "label":"Diğer" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Anlaması kolay" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Sorunumu çözdü" },{ "type": "thumb-up", "id": "otherUp", "label":"Diğer" }]