Uygulamanızı Firebase'e bağlama
Henüz yapmadıysanız Firebase'i Android projenize ekleyin.
Firebase Authentication'ı uygulamanıza ekleyin
Modül (uygulama düzeyinde) Gradle dosyanıza (genellikle
<project>/<app-module>/build.gradle.kts
veya<project>/<app-module>/build.gradle
), Android için Firebase Authentication kitaplığına bağımlılığı ekleyin. Kitaplık sürümünü kontrol etmek için Firebase Android BoM'u kullanmanızı öneririz.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.1.2")) // 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 her zaman uyumlu sürümlerini kullanır.
(Alternatif) BoM'u kullanmadan Firebase kitaplığı bağımlılıklarını ekleme
Firebase BoM'yi kullanmamayı seçerseniz 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 BoM kullanmanızı önemle tavsiye ederiz. Böylece 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:23.0.0") }
Kimlik doğrulama sağlayıcı kullanmak için bu sağlayıcıyı Firebase konsolunda etkinleştirmeniz gerekir. Firebase Authentication bölümündeki Oturum Açma Yöntemi sayfasına giderek E-posta/Şifre ile oturum açmayı ve uygulamanız için istediğiniz diğer kimlik sağlayıcıları etkinleştirin.
(İsteğe bağlı) Firebase Local Emulator Suite ile prototip oluşturun 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 araçtan bahsedelim: Firebase Local Emulator Suite. Kimlik doğrulama teknikleri ve sağlayıcılar arasında karar veriyorsanız Authentication ve Firebase Güvenlik Kurallarını kullanarak herkese açık ve gizli verilerle farklı veri modelleri deniyorsanız ya da oturum açma kullanıcı arayüzü tasarımlarının prototipleri oluşturuyorsanız canlı hizmetleri dağıtmadan yerel olarak çalışabilmek harika bir fikir olabilir.
Local Emulator Suite'in bir parçasıdır. Bu emülatör, uygulamanızın emüle edilmiş veritabanı içeriği ve yapılandırmasının yanı sıra isteğe bağlı olarak emüle edilen proje kaynaklarınızla (işlevler, diğer veritabanları ve güvenlik kuralları) etkileşimde bulunmasını sağlar.
Kimlik Doğrulama emülatörünün kullanımı yalnızca birkaç adımdan oluşur:
- Emülatöre bağlanmak için uygulamanızın test yapılandırmasına bir kod satırı ekleme.
- Yerel proje dizininizin kök dizininden
firebase emulators:start
komutunu çalıştırın. - Etkileşimli prototip oluşturmak için Local Emulator Suite kullanıcı arayüzünü veya etkileşimli olmayan test için Kimlik Doğrulama emülatörü REST API'yi kullanma.
Uygulamanızı Kimlik Doğrulama emülatörüne bağlama başlıklı makalede ayrıntılı bir kılavuz bulabilirsiniz. Daha fazla bilgi için Local Emulator Suite tanıtımı konusuna bakın.
Şimdi kullanıcı kimliğinin nasıl doğrulanacağına geçelim.
Mevcut kimlik doğrulama durumunu kontrol et
FirebaseAuth
örneği tanımlayın.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 o 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 için kaydolma
E-posta adresi ve şifre alan, bunları doğrulayan ve 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-posta 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 örneği görebilirsiniz.
Mevcut kullanıcıların oturumunu açma
E-posta adresi ve şifre alan, bunları doğrulayan ve 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-posta ve şifreleriyle oturum açmasını sağlamak için bir form ekleyin ve gönderildiğinde bu yeni yöntemi çağırın. Hızlı başlangıç örneğimizde bir örneği görebilirsiniz.
Kullanıcı bilgilerine erişme
Kullanıcı başarıyla oturum açtıysa, hesap verilerini istediğiniz zaman getCurrentUser
yöntemiyle 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
Başka kimlik ve kimlik doğrulama hizmetleri ekleme ile ilgili kılavuzları keşfedin: