了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Android'de Firebase Authentication'ı Kullanmaya Başlayın

Uygulamanızı Firebase'e bağlayın

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

Uygulamanıza Firebase Authentication 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'
}

Bir kimlik doğrulama sağlayıcısı kullanmak için onu Firebase konsolunda etkinleştirmeniz gerekir. E-posta/Parola ile oturum açmayı ve uygulamanız için istediğiniz diğer kimlik sağlayıcıları 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 oluşturun ve test edin

Uygulamanızın kullanıcıların kimliğini nasıl doğruladığı hakkında konuşmadan ö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 modelleri deniyorsanız veya oturum açma kullanıcı arabirimi tasarımlarının prototipini oluşturuyorsanı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ünmüş proje kaynaklarınızla (işlevler, diğer veritabanları ve güvenlik kuralları) etkileşime girmesini 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:

  1. Öykünücüye bağlanmak için uygulamanızın test yapılandırmasına bir kod satırı ekleme.
  2. Yerel proje dizininizin kökünden, çalıştırılan firebase emulators:start .
  3. Etkileşimli prototip oluşturma için Local Emulator Suite Kullanıcı Arabirimini veya etkileşimli olmayan testler için Kimlik Doğrulama öykünücüsü REST API'sini kullanma.

Uygulamanızı Kimlik Doğrulama öykünücüsüne bağlama adresinde ayrıntılı bir kılavuz mevcuttur. Daha fazla bilgi için Local Emulator Suite tanıtımına bakın.

Şimdi kullanıcıların kimliğinin nasıl doğrulanacağına devam edelim.

Geçerli kimlik doğrulama durumunu kontrol edin

  1. FirebaseAuth örneğini bildirin.

    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. 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
        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 kaydet

Bir e-posta adresini ve parolayı 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-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 örnek görebilirsiniz.

Mevcut kullanıcılarda oturum açın

Bir e-posta adresini ve parolayı alan, bunları doğrulayan ve ardından signInWithEmailAndPassword yöntemiyle bir 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 parolalarıyla oturum açması 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.

Kullanıcı bilgilerine erişin

Bir kullanıcı başarılı bir şekilde oturum açtıysa, getCurrentUser yöntemiyle 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: