Melakukan Autentikasi dengan Firebase menggunakan Akun Berbasis Sandi pada Android

Anda dapat menggunakan Firebase Authentication untuk mengizinkan pengguna melakukan autentikasi dengan Firebase menggunakan alamat email dan sandinya, serta untuk mengelola akun berbasis sandi pada aplikasi Anda.

Sebelum memulai

  1. Tambahkan Firebase ke project Android.
  2. Tambahkan dependensi untuk Firebase Authentication ke file build.gradle tingkat aplikasi:
    implementation 'com.google.firebase:firebase-auth:16.0.3'
  3. Jika Anda belum menghubungkan aplikasi ke project Firebase, lakukanlah dari Firebase console.
  4. Aktifkan login dengan Email/Sandi:
    1. Di Firebase console, buka bagian Auth.
    2. Di tab Metode login, aktifkan metode login Email/sandi dan klik Simpan.

Membuat akun berbasis sandi

Untuk membuat akun pengguna baru dengan sandi, selesaikan langkah-langkah berikut pada aktivitas login aplikasi Anda:

  1. Pada metode onCreate aktivitas login, dapatkan instance bersama dari objek FirebaseAuth:
    private FirebaseAuth mAuth;
    // ...
    mAuth = FirebaseAuth.getInstance();
    
  2. Saat menginisialisasi Aktivitas Anda, periksa apakah pengguna saat ini sedang login:
    @Override
    public void onStart() {
        super.onStart();
        // Check if user is signed in (non-null) and update UI accordingly.
        FirebaseUser currentUser = mAuth.getCurrentUser();
        updateUI(currentUser);
    }
    
  3. Ketika pengguna baru mendaftar menggunakan formulir pendaftaran aplikasi Anda, selesaikan langkah-langkah validasi akun baru yang diwajibkan oleh aplikasi, seperti memverifikasi bahwa sandi akun baru tersebut telah diketik dengan benar dan memenuhi persyaratan kerumitan.
  4. Buat akun baru dengan meneruskan alamat email dan sandi pengguna baru ke createUserWithEmailAndPassword:
    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);
                    }
    
                    // ...
                }
            });
    
    Jika akun baru dibuat, pengguna juga telah login. Dalam callback, Anda dapat menggunakan metode getCurrentUser untuk mendapatkan data akun pengguna tersebut.

Membuat pengguna login dengan alamat email dan sandi

Langkah-langkah untuk membuat agar pengguna login dengan sandi hampir sama dengan langkah-langkah untuk membuat akun baru. Pada aktivitas login aplikasi Anda, lakukan hal berikut:

  1. Di metode onCreate aktivitas login Anda, dapatkan instance bersama dari objek FirebaseAuth:
    private FirebaseAuth mAuth;
    // ...
    mAuth = FirebaseAuth.getInstance();
    
  2. Saat menginisialisasi Aktivitas Anda, periksa apakah pengguna saat ini sedang login:
    @Override
    public void onStart() {
        super.onStart();
        // Check if user is signed in (non-null) and update UI accordingly.
        FirebaseUser currentUser = mAuth.getCurrentUser();
        updateUI(currentUser);
    }
    
  3. Ketika pengguna login ke aplikasi Anda, teruskan alamat email dan sandi pengguna ke signInWithEmailAndPassword:
    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);
                    }
    
                    // ...
                }
            });
    
    Jika berhasil login, Anda dapat menggunakan FirebaseUser yang dihasilkan untuk melanjutkan.

Langkah berikutnya

Setelah pengguna login untuk pertama kalinya, akun pengguna baru akan dibuat dan dihubungkan ke kredensial—yaitu, nama pengguna dan sandi, nomor telepon, atau informasi penyedia autentikasi—yang digunakan pengguna tersebut untuk login. Akun baru ini disimpan sebagai bagian dari project Firebase Anda dan dapat digunakan untuk mengidentifikasi pengguna di setiap aplikasi dalam project Anda, terlepas dari cara pengguna login.

  • Pada aplikasi, Anda bisa memperoleh informasi profil dasar pengguna dari objek FirebaseUser . Lihat Mengelola Pengguna.

  • Pada Aturan Keamanan Firebase Realtime Database dan Cloud Storage, Anda dapat memperoleh ID unik milik pengguna yang login dari variabel auth dan menggunakannya untuk mengontrol data yang dapat diakses pengguna.

Anda dapat mengizinkan pengguna untuk login ke aplikasi Anda menggunakan beberapa penyedia autentikasi dengan menautkan kredensial penyedia autentikasi ke akun pengguna yang ada.

Agar pengguna logout, panggil signOut:

FirebaseAuth.getInstance().signOut();

Kirim masukan tentang...

Butuh bantuan? Kunjungi halaman dukungan kami.