Buka konsol

Memulai Firebase Authentication di Android

Menghubungkan aplikasi ke Firebase

Tambahkan Firebase ke project Android jika Anda belum melakukannya.

Pada file build.gradle level project, pastikan untuk menyertakan repositori Maven Google di bagian buildscript dan allprojects Anda.

Menambahkan Firebase Authentication ke aplikasi Anda

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

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

Jika ingin menggunakan suatu penyedia otentikasi, 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. Nyatakan instance FirebaseAuth.

    Java
    Android

    private FirebaseAuth mAuth;

    Kotlin
    Android

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

    Java
    Android

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

    Kotlin
    Android

    // Initialize Firebase Auth
    auth = FirebaseAuth.getInstance()
  3. Saat menginisialisasi Aktivitas Anda, periksa apakah pengguna saat ini sedang login.

    Java
    Android

    @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
    Android

    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, jalankan validasi, lalu buat pengguna baru dengan metode [createUserWithEmailAndPassword] (/docs/reference/android/com/google/firebase/auth/FirebaseAuth.html#createUserWithEmailAndPassword(java.lang.String, java.lang.String).

Java
Android

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
Android

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 mereka, dan panggil metode baru ini saat dikirim. Anda dapat melihat contohnya pada sampel quickstart kami.

Membuat pengguna yang ada agar login

Buat metode signIn baru yang akan menerima alamat email dan sandi, memvalidasinya, lalu membuat pengguna login dengan metode signInWithEmailAndPassword.

Java
Android

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
Android

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 mereka, dan panggil metode baru ini saat dikirim. Anda dapat melihat contohnya pada sampel quickstart kami.

Mengakses informasi pengguna

Jika pengguna berhasil login, Anda bisa mendapatkan data akun mereka pada tahap mana saja dengan metode getCurrentUser.

Java
Android

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
Android

val user = FirebaseAuth.getInstance().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: