Memulai Firebase Authentication di Android

Menghubungkan aplikasi ke Firebase

Tambahkan Firebase ke project Android jika Anda belum melakukannya.

Dalam file build.gradle level project, pastikan Anda memasukkan repositori Maven Google di bagian buildscript dan allprojects.

Menambahkan Firebase Authentication ke aplikasi Anda

Tambahkan dependensi untuk library Android Authentication ke file Gradle modul (level aplikasi) Anda (biasanya berupa app/build.gradle):

Java

implementation 'com.google.firebase:firebase-auth:19.3.2'

Kotlin+KTX

implementation 'com.google.firebase:firebase-auth-ktx:19.3.2'

Jika ingin menggunakan penyedia autentikasi, Anda harus mengaktifkannya di Firebase console. Buka halaman Metode Login di bagian Firebase Authentication untuk mengaktifkan Login dengan Email/Sandi dan penyedia identitas lain mana pun yang Anda inginkan untuk aplikasi Anda.

Memeriksa status autentikasi saat ini

  1. Deklarasikan instance FirebaseAuth.

    Java

    private FirebaseAuth mAuth;

    Kotlin+KTX

    private lateinit var auth: FirebaseAuth
  2. Dalam metode onCreate(), lakukan inisialisasi instance FirebaseAuth.

    Java

    // Initialize Firebase Auth
    mAuth = FirebaseAuth.getInstance();

    Kotlin+KTX

    // Initialize Firebase Auth
    auth = Firebase.auth
  3. Saat melakukan inisialisasi Aktivitas Anda, periksa apakah pengguna saat ini sudah login atau belum.

    Java

    @Override
    public void onStart() {
        super.onStart();
        // Check if user is signed in (non-null) and update UI accordingly.
        FirebaseUser currentUser = mAuth.getCurrentUser();
        updateUI(currentUser);
    }

    Kotlin+KTX

    public override fun onStart() {
        super.onStart()
        // Check if user is signed in (non-null) and update UI accordingly.
        val currentUser = auth.currentUser
        updateUI(currentUser)
    }

Mendaftarkan pengguna baru

Buat metode createAccount baru yang menggunakan alamat email dan sandi, validasikan metode tersebut, lalu buat pengguna baru dengan metode [createUserWithEmailAndPassword](/docs/reference/android/com/google/firebase/auth/Metode FirebaseAuth.html#createUserWithEmailAndPassword(java.lang.String, java.lang.String).

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);
                }

                // ...
            }
        });

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)
            }

            // ...
        }

Tambahkan formulir untuk mendaftarkan pengguna baru dengan email dan sandi miliknya, lalu panggil metode baru ini saat dikirim. Anda dapat melihat contohnya pada sampel panduan memulai kami.

Membuat pengguna yang ada agar login

Buat metode signIn baru yang menggunakan alamat email dan sandi, validasikan metode tersebut, lalu buat agar pengguna login dengan metode signInWithEmailAndPassword.

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);
                    // ...
                }

                // ...
            }
        });

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)
                // ...
            }

            // ...
        }

Tambahkan formulir untuk membuat pengguna login dengan email dan sandi miliknya, lalu panggil metode baru ini saat dikirim. Anda dapat melihat contohnya pada sampel panduan memulai kami.

Mengakses informasi pengguna

Jika pengguna berhasil login, Anda dapat memperoleh data akunnya kapan pun dibutuhkan dengan metode getCurrentUser.

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();
}

Kotlin+KTX

val user = Firebase.auth.currentUser
user?.let {
    // Name, email address, and profile photo Url
    val name = user.displayName
    val email = user.email
    val photoUrl = user.photoUrl

    // Check if user's email is verified
    val 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.getToken() instead.
    val uid = user.uid
}

Langkah Berikutnya

Pelajari panduan tentang cara menambahkan layanan identitas dan autentikasi lain: