Android'de Firebase Authentication'ı Kullanmaya Başlama

Uygulamanızı Firebase'e bağlama

Henüz yapmadıysanız Firebase'i Android projenize ekleyin.

Firebase Authentication'ı uygulamanıza ekleyin

  1. 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çin

    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'u kullanarak, Uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanacaktır.

    (Alternatif) BoM'u kullanmadan Firebase kitaplığı bağımlılıklarını ekleyin

    Firebase BoM'yi kullanmamayı tercih ederseniz 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. Böylece, uyumlu olur.

    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")
    }
    
    .
    'nı inceleyin. Kotlin'e özel bir kitaplık modülü mü arıyorsunuz? Başlamak için kalan süre: Ekim 2023 (Firebase BoM 32.5.0), hem Kotlin hem de Java geliştiricileri (ayrıntılar için bkz. bu girişimle ilgili SSS).

  2. Bir kimlik doğrulama sağlayıcı kullanmak için sağlayıcıyı Firebase konsolu. Firebase Authentication'daki Oturum Açma Yöntemi sayfasına gidin bölümünde, E-posta/Şifre oturum açma özelliğini ve diğer kimlik sağlayıcıları etkinleştirin istediğinize karar verin.

(İ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 araçlar: Firebase Local Emulator Suite. Kimlik doğrulama teknikleri arasında karar vermeye test ederek herkese açık ve gizli verilerle farklı veri modellerini deniyor, oturum açma kullanıcı arayüzü tasarımlarının prototipini oluşturarak kimlik doğrulama ve güvenlik kurallarını yerel olarak çalışmak sizin için harika bir fikir olabilir.

Kimlik Doğrulama emülatörü, Yerel Emulator Suite'in bir parçasıdır. uygulamanızın emüle edilmiş veritabanı içeriği ve yapılandırmasıyla etkileşimde bulunmasını sağlar. ve isteğe bağlı olarak emüle edilen proje kaynaklarınızın (işlevler, diğer veritabanları ve güvenlik kuralları) ekleyin.

Kimlik Doğrulama emülatörünün kullanımı yalnızca birkaç adımdan oluşur:

  1. Emülatöre bağlanmak için uygulamanızın test yapılandırmasına bir kod satırı ekleme.
  2. Yerel proje dizininizin kök dizininden firebase emulators:start komutunu çalıştırın.
  3. Etkileşimli prototip oluşturmak için Local Emulator Suite kullanıcı arayüzünü kullanmak veya Etkileşimli olmayan test için kimlik doğrulama emülatörü REST API.

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

  1. FirebaseAuth örneği tanımlayın.

    Kotlin+KTX

    private lateinit var auth: FirebaseAuth

    Java

    private FirebaseAuth mAuth;
  2. onCreate() yönteminde FirebaseAuth örneğini başlatın.

    Kotlin+KTX

    // Initialize Firebase Auth
    auth = Firebase.auth

    Java

    // Initialize Firebase Auth
    mAuth = FirebaseAuth.getInstance();
  3. Etkinliğinizi başlatırken, kullanıcının o anda oturum açmış olup olmadığını kontrol edin inç

    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 yeni bir createAccount yöntemi oluşturun. bunları doğrular ve daha sonra createUserWithEmailAndPassword yöntemidir.

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 adresleri ve şifreleriyle kaydettirmek için bir form ekleyin ve bu yeni kullanıcıyı çağırın yöntemini çağırın. Bir örnek için hızlı başlangıç örneği.

Mevcut kullanıcıların oturumunu açma

E-posta adresi ve şifre alan yeni bir signIn yöntemi oluşturun. bunları doğrular ve ardından signInWithEmailAndPassword yöntemini kullanabilirsiniz.

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 bu yeni yöntemini çağırın. Bir örnek için hızlı başlangıç örneği.

Kullanıcı bilgilerine erişme

Kullanıcı başarıyla oturum açtıysa hesap verilerini şu adresten alabilirsiniz: getCurrentUser yöntemiyle ilgili bir sorun yaşadığınızda bunu yapabilirsiniz.

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: