Uygulamanızı Firebase'e bağlama
Henüz yapmadıysanız Firebase'i Android projenize ekleyin.
Uygulamanıza Firebase Authentication ekleme
Modülünüzün (uygulama düzeyinde) Gradle dosyasında (genellikle
<project>/<app-module>/build.gradle.kts
veya<project>/<app-module>/build.gradle
), Android için Firebase Authentication kitaplığının bağımlılığını ekleyin. Kitaplık sürüm oluşturmayı kontrol etmek için Firebase Android BoM kullanmanızı öneririz.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.0.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 Firebase Android kitaplıklarının daima uyumlu sürümlerini kullanır.
(Alternatif) Firebase kitaplığı bağımlılıklarını BoM kullanmadan ekleyin.
Firebase BoM kullanmamayı tercih ederseniz her Firebase kitaplık sürümünü bağımlılık satırında belirtmeniz gerekir.
Uygulamanızda birden fazla Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için BoM kullanmanızı önemle tavsiye ederiz. Bu sayede tüm sürümlerin uyumlu olması sağlanır.
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:24.0.0") }
Bir kimlik doğrulama sağlayıcısını kullanmak için Firebase konsolunda etkinleştirmeniz gerekir. E-posta/şifre ile oturum açma ve uygulamanız için istediğiniz diğer kimlik sağlayıcıları etkinleştirmek üzere Firebase Authentication bölümündeki Oturum Açma Yöntemi sayfasına gidin.
(İsteğe bağlı) Firebase Local Emulator Suite ile prototip oluşturma ve test etme
Uygulamanızın kullanıcıların kimliğini nasıl doğruladığından bahsetmeden önce, Authentication işlevselliğini prototiplemek ve test etmekFirebase Local Emulator Suite için kullanabileceğiniz bir dizi araçtan bahsedelim. Kimlik doğrulama teknikleri ve sağlayıcıları arasında karar veriyorsanız, Authentication ve Firebase Security Rules kullanarak herkese açık ve özel verilerle farklı veri modellerini deniyorsanız veya oturum açma kullanıcı arayüzü tasarımlarının prototipini oluşturuyorsanız canlı hizmetleri dağıtmadan yerel olarak çalışabilmek harika bir fikir olabilir.
Authentication emülatörü, uygulamanızın emüle edilmiş veritabanı içeriği ve yapılandırmasıyla, ayrıca isteğe bağlı olarak emüle edilmiş proje kaynaklarınızla (işlevler, diğer veritabanları ve güvenlik kuralları) etkileşim kurmasını sağlayan Local Emulator Suite'nin bir parçasıdır.
Authentication emülatörünü kullanmak için yalnızca birkaç adım gerekir:
- Emülatöre bağlanmak için uygulamanızın test yapılandırmasına bir kod satırı ekleyin.
- Yerel proje dizininizin kökünden
firebase emulators:start
komutunu çalıştırın. - Etkileşimli prototip oluşturma için Local Emulator Suite kullanıcı arayüzünü veya etkileşimli olmayan test için Authentication emülatör REST API'sini kullanma.
Ayrıntılı kılavuzu Uygulamanızı Authentication emülatörüne bağlama başlıklı makalede bulabilirsiniz. Daha fazla bilgi için Local Emulator Suite giriş bölümüne bakın.
Şimdi kullanıcıların kimliğini nasıl doğrulayacağımıza geçelim.
Mevcut kimlik doğrulama durumunu kontrol etme
FirebaseAuth
örneği bildirin.Kotlin
private lateinit var auth: FirebaseAuth
Java
private FirebaseAuth mAuth;
onCreate()
yöntemindeFirebaseAuth
örneğini başlatın.Kotlin
// Initialize Firebase Auth auth = Firebase.auth
Java
// Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
Etkinliğinizi başlatırken kullanıcının oturumunun açık olup olmadığını kontrol edin.
Kotlin
public override fun onStart() { super.onStart() // Check if user is signed in (non-null) and update UI accordingly. val currentUser = auth.currentUser if (currentUser != null) { reload() } }
Java
@Override public void onStart() { super.onStart(); // Check if user is signed in (non-null) and update UI accordingly. FirebaseUser currentUser = mAuth.getCurrentUser(); if(currentUser != null){ reload(); } }
Yeni kullanıcıları kaydetme
Bir e-posta adresi ve şifre alan, bunları doğrulayan ve ardından createUserWithEmailAndPassword
yöntemiyle yeni bir kullanıcı oluşturan yeni bir createAccount
yöntemi oluşturun.
Kotlin
auth.createUserWithEmailAndPassword(email, password) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "createUserWithEmail:success") val user = auth.currentUser updateUI(user) } else { // If sign in fails, display a message to the user. Log.w(TAG, "createUserWithEmail:failure", task.exception) Toast.makeText( baseContext, "Authentication failed.", Toast.LENGTH_SHORT, ).show() updateUI(null) } }
Java
mAuth.createUserWithEmailAndPassword(email, password) .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, "createUserWithEmail:success"); FirebaseUser user = mAuth.getCurrentUser(); updateUI(user); } else { // If sign in fails, display a message to the user. Log.w(TAG, "createUserWithEmail:failure", task.getException()); Toast.makeText(EmailPasswordActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } } });
Yeni kullanıcıları e-posta adresleri ve şifreleriyle kaydetmek için bir form ekleyin ve bu form gönderildiğinde yeni yöntemi çağırın. Bir örneği hızlı başlangıç örneğimizde görebilirsiniz.
Mevcut kullanıcıların oturumunu açma
Bir e-posta adresi ve şifre alan, bunları doğrulayan ve ardından signInWithEmailAndPassword
yöntemiyle kullanıcı oturumu açan yeni bir signIn
yöntemi oluşturun.
Kotlin
auth.signInWithEmailAndPassword(email, password) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInWithEmail:success") val user = auth.currentUser updateUI(user) } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInWithEmail:failure", task.exception) Toast.makeText( baseContext, "Authentication failed.", Toast.LENGTH_SHORT, ).show() updateUI(null) } }
Java
mAuth.signInWithEmailAndPassword(email, password) .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, "signInWithEmail:success"); FirebaseUser user = mAuth.getCurrentUser(); updateUI(user); } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInWithEmail:failure", task.getException()); Toast.makeText(EmailPasswordActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } } });
Kullanıcıların e-posta ve şifreleriyle oturum açmalarını sağlayan bir form ekleyin ve bu yeni yöntemi gönderildiğinde çağırın. Bir örneği hızlı başlangıç örneğimizde görebilirsiniz.
Kullanıcı bilgilerine erişme
Bir kullanıcı başarıyla oturum açtıysa getCurrentUser
yöntemini kullanarak istediğiniz zaman hesap verilerini alabilirsiniz.
Kotlin
val user = Firebase.auth.currentUser user?.let { // Name, email address, and profile photo Url val name = it.displayName val email = it.email val photoUrl = it.photoUrl // Check if user's email is verified val emailVerified = it.isEmailVerified // 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 // FirebaseUser.getIdToken() instead. val uid = it.uid }
Java
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); if (user != null) { // Name, email address, and profile photo Url String name = user.getDisplayName(); String email = user.getEmail(); Uri photoUrl = user.getPhotoUrl(); // Check if user's email is verified boolean emailVerified = user.isEmailVerified(); // 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 // FirebaseUser.getIdToken() instead. String uid = user.getUid(); }
Sonraki adımlar
Diğer kimlik ve kimlik doğrulama hizmetlerini ekleme ile ilgili kılavuzları inceleyin: