Buka konsol

Melakukan Autentikasi dengan Firebase di Android Menggunakan Nomor Telepon

Anda dapat menggunakan Firebase Authentication untuk membuat pengguna login dengan mengirim pesan SMS ke ponselnya. Selanjutnya, pengguna login menggunakan kode sekali pakai yang terdapat dalam pesan SMS tersebut.

Cara termudah untuk menambahkan login dengan nomor telepon ke aplikasi adalah menggunakan FirebaseUI, yang mencakup widget login drop-in yang mengimplementasikan proses login untuk login dengan nomor telepon serta login berbasis sandi dan gabungan. Dokumen ini berisi penjelasan mengenai cara mengimplementasikan proses login dengan nomor telepon menggunakan Firebase SDK.

Sebelum memulai

  1. Tambahkan Firebase ke project Android jika Anda belum melakukannya.
  2. Pada file build.gradle level project, pastikan untuk menyertakan repositori Maven Google di bagian buildscript dan allprojects Anda.
  3. 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:19.0.0'
  4. Jika Anda belum menghubungkan aplikasi ke project Firebase, lakukanlah dari Firebase console.
  5. Jika Anda belum menetapkan hash SHA-1 aplikasi di Firebase console, lakukan hal tersebut. Lihat Melakukan Autentikasi Klien Anda untuk mengetahui informasi mengenai cara menemukan hash SHA-1 aplikasi Anda.

Selain itu, perlu diperhatikan bahwa login dengan nomor telepon memerlukan perangkat fisik dan tidak akan berfungsi pada emulator.

Masalah keamanan

Autentikasi hanya melalui nomor telepon, meski nyaman, kurang aman dibandingkan metode lain yang tersedia, karena nomor tersebut dapat berpindah tangan antara pengguna dengan mudah. Selain itu, pada perangkat yang memuat beberapa profil pengguna, setiap pengguna yang dapat menerima pesan SMS dapat login ke akun menggunakan nomor telepon perangkat tersebut.

Jika Anda menggunakan fitur login dengan nomor telepon di aplikasi, Anda harus menawarkannya bersama metode login yang lebih aman, dan memberi tahu pengguna tentang kelemahan keamanan jika menggunakan metode login dengan nomor telepon.

Mengaktifkan login dengan Nomor Telepon untuk project Firebase

Untuk membuat pengguna login melalui SMS, Anda harus mengaktifkan metode login dengan Nomor Telepon untuk project Firebase terlebih dahulu:

  1. Di Firebase console, buka bagian Authentication.
  2. Di halaman Metode Login, aktifkan metode login dengan Nomor Telepon.

Kuota permintaan login dengan nomor telepon di Firebase cukup tinggi, sehingga sebagian besar aplikasi tidak akan terpengaruh. Namun, jika Anda perlu membuat banyak sekali pengguna login dengan autentikasi telepon, Anda mungkin harus mengupgrade paket harga. Lihat halaman harga.

Mengirim kode verifikasi ke ponsel pengguna

Untuk memulai metode login dengan nomor telepon, tunjukkan kepada pengguna antarmuka yang akan meminta mereka untuk memasukkan nomor telepon. Persyaratan hukum yang berlaku berbeda-beda, tetapi sebagai praktik terbaik dan untuk menetapkan ekspektasi pengguna, sebaiknya informasikan bahwa jika mereka menggunakan metode login melalui ponsel, akan muncul pesan SMS untuk melakukan verifikasi dan berlaku tarif standar.

Kemudian, teruskan nomor telepon tersebut ke metode PhoneAuthProvider.verifyPhoneNumber untuk meminta Firebase memverifikasi nomor telepon pengguna. Misalnya:

Java

PhoneAuthProvider.getInstance().verifyPhoneNumber(
        phoneNumber,        // Phone number to verify
        60,                 // Timeout duration
        TimeUnit.SECONDS,   // Unit of timeout
        this,               // Activity (for callback binding)
        mCallbacks);        // OnVerificationStateChangedCallbacks

Kotlin

PhoneAuthProvider.getInstance().verifyPhoneNumber(
        phoneNumber, // Phone number to verify
        60, // Timeout duration
        TimeUnit.SECONDS, // Unit of timeout
        this, // Activity (for callback binding)
        callbacks) // OnVerificationStateChangedCallbacks

Metode verifyPhoneNumber adalah reentrant: jika Anda memanggilnya berkali-kali, seperti dalam metode onStart aktivitas, metode verifyPhoneNumber tidak akan mengirim SMS kedua kecuali permintaan asli telah habis waktunya.

Anda dapat menggunakan perilaku ini untuk melanjutkan proses login dengan nomor telepon, jika aplikasi Anda ditutup sebelum pengguna dapat login (misalnya, saat pengguna menggunakan aplikasi SMS). Setelah Anda memanggil verifyPhoneNumber, tetapkan tanda yang menunjukkan bahwa verifikasi sedang berlangsung. Kemudian, simpan tanda dalam metode onSaveInstanceState Aktivitas dan pulihkan tanda di onRestoreInstanceState. Terakhir, dalam metode onStart Aktivitas, pastikan bahwa verifikasi sudah berlangsung, dan jika ya, panggil verifyPhoneNumber lagi. Pastikan untuk menghapus tanda saat verifikasi selesai atau gagal (lihat Callback verifikasi).

Untuk menangani rotasi layar dan instance pemulaian ulang Aktivitas lainnya dengan mudah, teruskan Aktivitas ke metode verifyPhoneNumber. Callback akan terlepas secara otomatis saat Aktivitas berhenti, sehingga Anda dapat dengan leluasa menulis kode transisi UI dalam metode callback.

Pesan SMS yang dikirim oleh Firebase juga dapat diterjemahkan dengan menentukan bahasa autentifikasi melalui metode setLanguageCode di instance Auth Anda.

Java

auth.setLanguageCode("fr");
// To apply the default app language instead of explicitly setting it.
// auth.useAppLanguage();

Kotlin

auth.setLanguageCode("fr")
// To apply the default app language instead of explicitly setting it.
// auth.useAppLanguage()

Saat memanggil PhoneAuthProvider.verifyPhoneNumber, Anda juga harus memberikan instance OnVerificationStateChangedCallbacks, yang berisi implementasi fungsi callback yang menangani hasil permintaan. Contohnya:

Java

mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {

    @Override
    public void onVerificationCompleted(PhoneAuthCredential credential) {
        // This callback will be invoked in two situations:
        // 1 - Instant verification. In some cases the phone number can be instantly
        //     verified without needing to send or enter a verification code.
        // 2 - Auto-retrieval. On some devices Google Play services can automatically
        //     detect the incoming verification SMS and perform verification without
        //     user action.
        Log.d(TAG, "onVerificationCompleted:" + credential);

        signInWithPhoneAuthCredential(credential);
    }

    @Override
    public void onVerificationFailed(FirebaseException e) {
        // This callback is invoked in an invalid request for verification is made,
        // for instance if the the phone number format is not valid.
        Log.w(TAG, "onVerificationFailed", e);

        if (e instanceof FirebaseAuthInvalidCredentialsException) {
            // Invalid request
            // ...
        } else if (e instanceof FirebaseTooManyRequestsException) {
            // The SMS quota for the project has been exceeded
            // ...
        }

        // Show a message and update the UI
        // ...
    }

    @Override
    public void onCodeSent(@NonNull String verificationId,
                           @NonNull PhoneAuthProvider.ForceResendingToken token) {
        // The SMS verification code has been sent to the provided phone number, we
        // now need to ask the user to enter the code and then construct a credential
        // by combining the code with a verification ID.
        Log.d(TAG, "onCodeSent:" + verificationId);

        // Save verification ID and resending token so we can use them later
        mVerificationId = verificationId;
        mResendToken = token;

        // ...
    }
};

Kotlin

callbacks = object : PhoneAuthProvider.OnVerificationStateChangedCallbacks() {

    override fun onVerificationCompleted(credential: PhoneAuthCredential) {
        // This callback will be invoked in two situations:
        // 1 - Instant verification. In some cases the phone number can be instantly
        //     verified without needing to send or enter a verification code.
        // 2 - Auto-retrieval. On some devices Google Play services can automatically
        //     detect the incoming verification SMS and perform verification without
        //     user action.
        Log.d(TAG, "onVerificationCompleted:$credential")

        signInWithPhoneAuthCredential(credential)
    }

    override fun onVerificationFailed(e: FirebaseException) {
        // This callback is invoked in an invalid request for verification is made,
        // for instance if the the phone number format is not valid.
        Log.w(TAG, "onVerificationFailed", e)

        if (e is FirebaseAuthInvalidCredentialsException) {
            // Invalid request
            // ...
        } else if (e is FirebaseTooManyRequestsException) {
            // The SMS quota for the project has been exceeded
            // ...
        }

        // Show a message and update the UI
        // ...
    }

    override fun onCodeSent(
        verificationId: String,
        token: PhoneAuthProvider.ForceResendingToken
    ) {
        // The SMS verification code has been sent to the provided phone number, we
        // now need to ask the user to enter the code and then construct a credential
        // by combining the code with a verification ID.
        Log.d(TAG, "onCodeSent:$verificationId")

        // Save verification ID and resending token so we can use them latevr
        storedVerificationId = verificationId
        resendToken = token

        // ...
    }
}

Callback verifikasi

Pada sebagian besar aplikasi, Anda menerapkan callback onVerificationCompleted, onVerificationFailed, dan onCodeSent. Anda mungkin juga menerapkan onCodeAutoRetrievalTimeOut, bergantung pada persyaratan aplikasi Anda.

onVerificationCompleted(PhoneAuthCredential)

Metode ini dipanggil dalam dua situasi:

  • Verifikasi instan: dalam beberapa kasus, nomor telepon dapat langsung diverifikasi tanpa perlu mengirim atau memasukkan kode verifikasi.
  • Pemungutan otomatis: pada beberapa perangkat, layanan Google Play dapat secara otomatis mendeteksi SMS verifikasi yang masuk dan melakukan verifikasi tanpa perlu tindakan pengguna. (Kemampuan ini mungkin tidak tersedia pada beberapa operator).
Dalam kedua kasus tersebut, nomor telepon pengguna telah berhasil diverifikasi dan Anda dapat menggunakan objek PhoneAuthCredential yang diteruskan ke callback untuk membuat pengguna login.

onVerificationFailed(FirebaseException)

Metode ini dipanggil sebagai respons atas permintaan verifikasi yang tidak valid, seperti permintaan yang menunjukkan nomor telepon atau kode verifikasi yang tidak valid.

onCodeSent(String verificationId, PhoneAuthProvider.ForceResendingToken)

Opsional. Metode ini dipanggil setelah kode verifikasi dikirim melalui SMS ke nomor telepon yang tersedia.

Saat metode ini dipanggil, sebagian besar aplikasi akan menampilkan UI yang meminta pengguna untuk mengetikkan kode verifikasi dari pesan SMS. (Pada saat bersamaan, verifikasi otomatis mungkin berlangsung di latar belakang). Kemudian, setelah pengguna mengetikkan kode verifikasi, Anda dapat menggunakan kode dan ID verifikasi yang diteruskan ke metode untuk membuat objek PhoneAuthCredential, yang dapat Anda gunakan untuk membuat pengguna login. Namun, beberapa aplikasi mungkin perlu menunggu hingga onCodeAutoRetrievalTimeOut dipanggil sebelum menampilkan UI kode verifikasi (tidak direkomendasikan).

onCodeAutoRetrievalTimeOut(String verificationId)

Opsional. Metode ini dipanggil setelah durasi waktu tunggu yang ditentukan untuk verifyPhoneNumber telah berlalu tanpa pemicuan onVerificationCompleted terlebih dahulu. Pada perangkat tanpa kartu SIM, metode ini segera dipanggil karena pemungutan otomatis SMS tidak memungkinkan.

Beberapa aplikasi memblokir input pengguna sampai waktu tunggu verifikasi otomatis habis, kemudian menampilkan UI yang meminta pengguna mengetikkan kode verifikasi dari pesan SMS (tidak direkomendasikan).

Membuat Objek PhoneAuthCredential

Setelah pengguna memasukkan kode verifikasi yang dikirim Firebase ke ponsel pengguna, buat objek PhoneAuthCredential, menggunakan kode dan ID verifikasi yang diteruskan ke callback onCodeSent atau onCodeAutoRetrievalTimeOut. (Saat onVerificationCompleted dipanggil, Anda akan mendapatkan objek PhoneAuthCredential secara langsung, sehingga bisa melewati langkah ini).

Untuk membuat objek PhoneAuthCredential, panggil PhoneAuthProvider.getCredential:

Java

PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, code);

Kotlin

val credential = PhoneAuthProvider.getCredential(verificationId!!, code)

Membuat agar pengguna login

Setelah Anda mendapatkan objek PhoneAuthCredential, baik dalam callback onVerificationCompleted atau dengan memanggil PhoneAuthProvider.getCredential, lengkapi alur login dengan meneruskan objek PhoneAuthCredential ke FirebaseAuth.signInWithCredential:

Java

private void signInWithPhoneAuthCredential(PhoneAuthCredential credential) {
    mAuth.signInWithCredential(credential)
            .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, "signInWithCredential:success");

                        FirebaseUser user = task.getResult().getUser();
                        // ...
                    } else {
                        // Sign in failed, display a message and update the UI
                        Log.w(TAG, "signInWithCredential:failure", task.getException());
                        if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
                            // The verification code entered was invalid
                        }
                    }
                }
            });
}

Kotlin

private fun signInWithPhoneAuthCredential(credential: PhoneAuthCredential) {
    auth.signInWithCredential(credential)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    // Sign in success, update UI with the signed-in user's information
                    Log.d(TAG, "signInWithCredential:success")

                    val user = task.result?.user
                    // ...
                } else {
                    // Sign in failed, display a message and update the UI
                    Log.w(TAG, "signInWithCredential:failure", task.exception)
                    if (task.exception is FirebaseAuthInvalidCredentialsException) {
                        // The verification code entered was invalid
                    }
                }
            }
}

Menguji dengan nomor telepon yang disetujui

Anda dapat memberi akses ke nomor telepon tertentu untuk proses pengembangan melalui Firebase console. Dengan memberi akses ke nomor telepon, Anda akan menerima manfaat berikut:

  • Menguji autentikasi nomor telepon tanpa menghabiskan kuota penggunaan Anda.
  • Menguji autentikasi nomor telepon tanpa mengirim pesan SMS yang sebenarnya.
  • Menjalankan tes berurutan dengan nomor telepon yang sama tanpa hambatan. Tindakan ini meminimalkan risiko penolakan selama proses peninjauan App store jika peninjau kebetulan menggunakan nomor telepon yang sama untuk melakukan pengujian.
  • Pengujian langsung di lingkungan pengembangan tanpa ada upaya tambahan, seperti kemampuan untuk melakukan pengembangan dalam simulator iOS atau emulator Android tanpa layanan Google Play.
  • Menulis pengujian integrasi tanpa diblokir oleh pemeriksaan keamanan yang biasanya diterapkan pada nomor telepon asli di lingkungan produksi.

Nomor telepon yang akan diberi akses harus memenuhi persyaratan berikut:

  1. Pastikan Anda menggunakan nomor fiksi yang belum ada. Firebase Authentication tidak mengizinkan Anda untuk memberi akses ke nomor telepon yang memang ada dan digunakan oleh pengguna sebenarnya. Salah satu opsinya adalah menggunakan nomor berawalan 555 sebagai nomor telepon pengujian di Amerika Serikat, misalnya: +1 650-555-3434
  2. Panjang nomor telepon dan batasan lainnya harus menggunakan format yang benar. Nomor telepon tersebut akan melalui validasi yang sama seperti nomor telepon pengguna sebenarnya.
  3. Anda dapat menambahkan hingga 10 nomor telepon untuk proses pengembangan.
  4. Gunakan nomor/kode telepon pengujian yang sulit ditebak dan sering diubah.

Memberi akses ke nomor telepon dan kode verifikasi

  1. Di Firebase console, buka bagian Authentication.
  2. Di tab Metode login, aktifkan penyedia Telepon jika Anda belum melakukannya.
  3. Buka menu akordeon Nomor telepon untuk pengujian.
  4. Berikan nomor telepon yang ingin Anda uji, misalnya: +1 650-555-3434.
  5. Berikan kode verifikasi 6 digit untuk nomor tertentu tersebut, misalnya: 654321.
  6. Tambahkan nomor telepon. Jika perlu, Anda dapat menghapus nomor telepon beserta kodenya dengan mengarahkan kursor ke baris yang sesuai dan mengklik ikon tempat sampah.

Pengujian manual

Anda dapat langsung mulai menggunakan nomor telepon yang diberi akses pada aplikasi. Hal ini memungkinkan Anda melakukan pengujian manual selama tahap pengembangan tanpa mengalami masalah kuota atau hambatan. Anda juga dapat menguji langsung dari simulator iOS atau emulator Android tanpa menginstal layanan Google Play.

Ketika Anda memberikan nomor telepon yang telah diberi akses dan mengirim kode verifikasi, sebenarnya tidak ada SMS yang dikirim. Sebagai gantinya, Anda harus memberikan kode verifikasi yang dikonfigurasi sebelumnya untuk menyelesaikan login.

Setelah login selesai, pengguna Firebase dibuat dengan nomor telepon itu. Pengguna tersebut memiliki perilaku dan properti seperti halnya pengguna nomor telepon asli dan dapat mengakses Realtime Database/Cloud Firestore serta layanan lainnya dengan cara yang sama. Token ID yang dibuat selama proses ini memiliki tanda tangan yang sama dengan pengguna nomor telepon yang sebenarnya.

Pilihan lainnya adalah menetapkan peran pengujian melalui klaim khusus pada pengguna ini untuk membedakan mereka dari pengguna palsu jika Anda ingin membatasi akses lebih lanjut.

Pengujian integrasi

Selain pengujian manual, Firebase Authentication menyediakan API untuk membantu menulis pengujian integrasi untuk pengujian autentikasi ponsel. API ini menonaktifkan verifikasi aplikasi dengan menonaktifkan persyaratan reCAPTCHA di web dan notifikasi push senyap di iOS. Dengan begitu, otomatisasi pengujian dimungkinkan dalam proses ini dan lebih mudah diterapkan. Selain itu, API ini membantu menyediakan kemampuan untuk menguji proses verifikasi instan di Android.

Di Android, Anda dapat langsung menggunakan nomor telepon yang diberi akses tanpa panggilan API tambahan apa pun. Memanggil verifyPhoneNumber dengan nomor yang diberi akses memicu callback onCodeSent, di mana Anda harus memberikan kode verifikasi yang sesuai. Hal ini memungkinkan pengujian di Emulator Android.

Java

String phoneNum = "+16505554567";
String testVerificationCode = "123456";

// Whenever verification is triggered with the whitelisted number,
// provided it is not set for auto-retrieval, onCodeSent will be triggered.
PhoneAuthProvider.getInstance().verifyPhoneNumber(
        phoneNum, 30L /*timeout*/, TimeUnit.SECONDS,
        this, new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {

            @Override
            public void onCodeSent(String verificationId,
                                   PhoneAuthProvider.ForceResendingToken forceResendingToken) {
                // Save the verification id somewhere
                // ...

                // The corresponding whitelisted code above should be used to complete sign-in.
                MainActivity.this.enableUserManuallyInputCode();
            }

            @Override
            public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
                // Sign in with the credential
                // ...
            }

            @Override
            public void onVerificationFailed(FirebaseException e) {
                 // ...
            }

        });

Kotlin

val phoneNum = "+16505554567"
val testVerificationCode = "123456"

// Whenever verification is triggered with the whitelisted number,
// provided it is not set for auto-retrieval, onCodeSent will be triggered.
PhoneAuthProvider.getInstance().verifyPhoneNumber(
        phoneNum, 30L /*timeout*/, TimeUnit.SECONDS,
        this, object : PhoneAuthProvider.OnVerificationStateChangedCallbacks() {

    override fun onCodeSent(
        verificationId: String,
        forceResendingToken: PhoneAuthProvider.ForceResendingToken
    ) {
        // Save the verification id somewhere
        // ...

        // The corresponding whitelisted code above should be used to complete sign-in.
        this@MainActivity.enableUserManuallyInputCode()
    }

    override fun onVerificationCompleted(phoneAuthCredential: PhoneAuthCredential) {
        // Sign in with the credential
        // ...
    }

    override fun onVerificationFailed(e: FirebaseException) {
        // ...
    }
})

Selain itu, Anda dapat menguji alur pungut otomatis di Android dengan menyetel nomor yang diberi akses dan kode verifikasinya untuk pemungutan otomatis dengan memanggil setAutoRetrievedSmsCodeForPhoneNumber.

Saat verifyPhoneNumber dipanggil, tindakan ini memicu onVerificationCompleted dengan PhoneAuthCredential secara langsung. Ini hanya berfungsi jika menggunakan nomor telepon yang telah diberi akses.

Pastikan ini dinonaktifkan dan tidak ada nomor telepon yang diberi akses dan ditulis secara hardcode dalam aplikasi saat Anda memublikasikan aplikasi tersebut ke Google Play store.

Java

// The test phone number and code should be whitelisted in the console.
String phoneNumber = "+16505554567";
String smsCode = "123456";

FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
FirebaseAuthSettings firebaseAuthSettings = firebaseAuth.getFirebaseAuthSettings();

// Configure faking the auto-retrieval with the whitelisted numbers.
firebaseAuthSettings.setAutoRetrievedSmsCodeForPhoneNumber(phoneNumber, smsCode);

PhoneAuthProvider phoneAuthProvider = PhoneAuthProvider.getInstance();
phoneAuthProvider.verifyPhoneNumber(
        phoneNumber,
        60L,
        TimeUnit.SECONDS,
        this, /* activity */
        new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
            @Override
            public void onVerificationCompleted(PhoneAuthCredential credential) {
                // Instant verification is applied and a credential is directly returned.
                // ...
            }

            // ...
        });

Kotlin

// The test phone number and code should be whitelisted in the console.
val phoneNumber = "+16505554567"
val smsCode = "123456"

val firebaseAuth = FirebaseAuth.getInstance()
val firebaseAuthSettings = firebaseAuth.firebaseAuthSettings

// Configure faking the auto-retrieval with the whitelisted numbers.
firebaseAuthSettings.setAutoRetrievedSmsCodeForPhoneNumber(phoneNumber, smsCode)

val phoneAuthProvider = PhoneAuthProvider.getInstance()
phoneAuthProvider.verifyPhoneNumber(
        phoneNumber,
        60L,
        TimeUnit.SECONDS,
        this, /* activity */
        object : PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
            override fun onVerificationCompleted(credential: PhoneAuthCredential) {
                // Instant verification is applied and a credential is directly returned.
                // ...
            }

            // ...
        })

Langkah berikutnya

Setelah pengguna login untuk pertama kalinya, akun pengguna baru akan dibuat dan ditautkan 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.

  • Dalam aplikasi, Anda bisa memperoleh informasi profil dasar pengguna dari objek FirebaseUser. Baca bagian Mengelola Pengguna.

  • Dalam 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:

Java

FirebaseAuth.getInstance().signOut();

Kotlin

FirebaseAuth.getInstance().signOut()