Uygulamanızı Firebase'e bağlayın
Henüz yapmadıysanız Android projenize Firebase'i ekleyin .
Uygulamanıza Firebase Kimlik Doğrulaması ekleyin
Modülünüzde (uygulama düzeyinde) Gradle dosyanızda (genellikle
<project>/<app-module>/build.gradle.kts
veya<project>/<app-module>/build.gradle
), Firebase Authentication bağımlılığını ekleyin Android için kütüphane. Kitaplık sürümlerini kontrol etmek için Firebase Android BoM'yi kullanmanızı öneririz.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.6.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.
Kotlin'e özgü bir kütüphane modülü mü arıyorsunuz? Ekim 2023'ten itibaren (Firebase BoM 32.5.0) hem Kotlin hem de Java geliştiricileri ana kütüphane modülüne güvenebilecekler (ayrıntılar için bu girişimle ilgili SSS'ye bakın).(Alternatif) BoM'yi kullanmadan Firebase kitaplığı bağımlılıklarını ekleyin
Firebase BoM'yi kullanmamayı tercih ederseniz her Firebase kitaplığı 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 tüm sürümlerin uyumlu olmasını sağlayan BoM'yi kullanmanızı önemle tavsiye ettiğimizi unutmayın.
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.3.0") }
Kimlik doğrulama sağlayıcısını kullanmak için onu Firebase konsolunda etkinleştirmeniz gerekir. Uygulamanız için E-posta/Şifre ile oturum açmayı ve istediğiniz diğer kimlik sağlayıcılarını etkinleştirmek için Firebase Kimlik Doğrulaması bölümündeki Oturum Açma Yöntemi sayfasına gidin.
(İsteğe bağlı) Firebase Local Emulator Suite ile prototip yapın ve test edin
Uygulamanızın kullanıcıların kimliğini nasıl doğruladığından bahsetmeden önce, Kimlik Doğrulama işlevinin prototipini oluşturmak ve test etmek için kullanabileceğiniz bir dizi aracı tanıtalım: Firebase Local Emulator Suite. Kimlik doğrulama teknikleri ve sağlayıcılar arasında karar veriyorsanız, Kimlik Doğrulama ve Firebase Güvenlik Kurallarını kullanarak genel ve özel verilerle farklı veri modellerini denemek veya oturum açma kullanıcı arayüzü tasarımlarının prototipini oluşturmak istiyorsanız, canlı hizmetleri dağıtmadan yerel olarak çalışabilmek harika bir fikir olabilir .
Kimlik Doğrulama öykünücüsü, uygulamanızın öykünülmüş veritabanı içeriği ve yapılandırmasının yanı sıra isteğe bağlı olarak öykünülmüş proje kaynaklarınızla (işlevler, diğer veritabanları ve güvenlik kuralları) etkileşim kurmasını sağlayan Yerel Öykünücü Paketinin bir parçasıdır.
Kimlik Doğrulama öykünücüsünü kullanmak yalnızca birkaç adımı içerir:
- Öykünücüye bağlanmak için uygulamanızın test yapılandırmasına bir kod satırı ekleme.
- Yerel proje dizininizin kökünden,
firebase emulators:start
çalıştırılıyor. - Etkileşimli prototip oluşturma için Local Emulator Suite kullanıcı arayüzünü veya etkileşimli olmayan testler için Kimlik Doğrulama öykünücüsü REST API'yi kullanma.
Uygulamanızı Kimlik Doğrulama öykünücüsüne bağlama bölümünde ayrıntılı bir kılavuz mevcuttur. Daha fazla bilgi için Local Emulator Suite'in tanıtımına bakın.
Şimdi kullanıcıların kimliğinin nasıl doğrulanacağına devam edelim.
Mevcut kimlik doğrulama durumunu kontrol edin
FirebaseAuth
örneğini bildirin.Kotlin+KTX
private lateinit var auth: FirebaseAuth
Java
private FirebaseAuth mAuth;
onCreate()
yöntemindeFirebaseAuth
örneğini başlatın.Kotlin+KTX
// Initialize Firebase Auth auth = Firebase.auth
Java
// Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
Etkinliğinizi 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 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 kaydedin
Bir e-posta adresi ve parola alan, bunları doğrulayan ve ardından createUserWithEmailAndPassword
yöntemiyle yeni bir kullanıcı oluşturan yeni bir createAccount
yöntemi oluşturun.
Kotlin+KTX
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-postaları ve şifreleriyle kaydetmek için bir form ekleyin ve gönderildiğinde bu yeni yöntemi çağırın. Hızlı başlangıç örneğimizde bir örnek görebilirsiniz.
Mevcut kullanıcılarda oturum açın
E-posta adresini ve parolayı alan, bunları doğrulayan ve ardından signInWithEmailAndPassword
yöntemiyle kullanıcının oturumunu açan yeni bir signIn
yöntemi oluşturun.
Kotlin+KTX
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-postaları ve şifreleriyle oturum açmaları için bir form ekleyin ve form gönderildiğinde bu yeni yöntemi çağırın. Hızlı başlangıç örneğimizde bir örnek görebilirsiniz.
Kullanıcı bilgilerine erişin
Bir kullanıcı başarıyla oturum açtıysa, getCurrentUser
yöntemini kullanarak hesap verilerini istediğiniz zaman alabilirsiniz.
Kotlin+KTX
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 eklemeye ilişkin kılavuzları keşfedin: