Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Memulai dengan Firebase Authentication di Android

Hubungkan aplikasi Anda ke Firebase

Jika Anda belum melakukannya, tambahkan Firebase ke proyek Android Anda .

Tambahkan Firebase Authentication ke aplikasi Anda

Dalam file Gradle modul (tingkat aplikasi) Anda (biasanya <project>/<app-module>/build.gradle ), tambahkan dependensi untuk library Android Firebase Authentication. Sebaiknya gunakan Firebase Android BoM untuk mengontrol pembuatan versi library.

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.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'
}

Dengan menggunakan Firebase Android BoM , aplikasi Anda akan selalu menggunakan versi library Firebase Android yang kompatibel.

(Alternatif) Tambahkan dependensi library Firebase tanpa menggunakan BoM

Jika Anda memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi pustaka Firebase di baris dependensinya.

Perhatikan bahwa jika Anda menggunakan beberapa pustaka Firebase di aplikasi Anda, kami sangat menyarankan penggunaan BoM untuk mengelola versi pustaka, yang memastikan bahwa semua versi kompatibel.

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:21.1.0'
}

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.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'
}

Dengan menggunakan Firebase Android BoM , aplikasi Anda akan selalu menggunakan versi library Firebase Android yang kompatibel.

(Alternatif) Tambahkan dependensi library Firebase tanpa menggunakan BoM

Jika Anda memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi pustaka Firebase di baris dependensinya.

Perhatikan bahwa jika Anda menggunakan beberapa pustaka Firebase di aplikasi Anda, kami sangat menyarankan penggunaan BoM untuk mengelola versi pustaka, yang memastikan bahwa semua versi kompatibel.

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:21.1.0'
}

Untuk menggunakan penyedia autentikasi, Anda harus mengaktifkannya di Firebase console . Buka halaman Metode Masuk di bagian Firebase Authentication untuk mengaktifkan login dengan Email/Sandi dan penyedia identitas lain yang Anda inginkan untuk aplikasi Anda.

(Opsional) Prototipe dan uji dengan Firebase Local Emulator Suite

Sebelum berbicara tentang bagaimana aplikasi Anda mengautentikasi pengguna, mari perkenalkan seperangkat alat yang dapat Anda gunakan untuk membuat prototipe dan menguji fungsionalitas Otentikasi: Firebase Local Emulator Suite. Jika Anda memutuskan di antara teknik dan penyedia autentikasi, mencoba model data yang berbeda dengan data publik dan pribadi menggunakan Authentication dan Aturan Keamanan Firebase, atau membuat prototipe desain UI masuk, dapat bekerja secara lokal tanpa menerapkan layanan langsung bisa menjadi ide yang bagus .

Emulator Authentication adalah bagian dari Local Emulator Suite, yang memungkinkan aplikasi Anda berinteraksi dengan konten dan konfigurasi database yang diemulasi, serta secara opsional sumber daya proyek yang diemulasi (fungsi, database lain, dan aturan keamanan).

Menggunakan emulator Otentikasi hanya melibatkan beberapa langkah:

  1. Menambahkan baris kode ke konfigurasi pengujian aplikasi Anda untuk terhubung ke emulator.
  2. Dari root direktori proyek lokal Anda, jalankan firebase emulators:start .
  3. Menggunakan UI Suite Emulator Lokal untuk pembuatan prototipe interaktif, atau REST API emulator Otentikasi untuk pengujian non-interaktif.

Panduan mendetail tersedia di Hubungkan aplikasi Anda ke emulator Otentikasi . Untuk informasi selengkapnya, lihat pengantar Local Emulator Suite .

Sekarang mari kita lanjutkan dengan cara mengautentikasi pengguna.

Periksa status autentikasi saat ini

  1. Deklarasikan instance FirebaseAuth .

    Java

    private FirebaseAuth mAuth;

    Kotlin+KTX

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

    Java

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

    Kotlin+KTX

    // Initialize Firebase Auth
    auth = Firebase.auth
  3. Saat menginisialisasi Aktivitas Anda, periksa untuk melihat apakah pengguna saat ini masuk.

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

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

Daftarkan pengguna baru

Buat metode createAccount baru yang mengambil alamat email dan kata sandi, memvalidasinya, lalu membuat pengguna baru dengan metode createUserWithEmailAndPassword .

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 kata sandi mereka dan panggil metode baru ini saat dikirimkan. Anda dapat melihat contoh di contoh panduan memulai kami.

Masuk pengguna yang ada

Buat metode masuk baru yang mengambil alamat email dan kata sandi, memvalidasinya, lalu memasukkan pengguna dengan signInWithEmailAndPassword signIn

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 memasukkan pengguna dengan email dan kata sandi mereka dan panggil metode baru ini saat dikirimkan. Anda dapat melihat contoh di contoh panduan memulai kami.

Akses informasi pengguna

Jika pengguna telah berhasil masuk, Anda bisa mendapatkan data akun mereka kapan saja 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 selanjutnya

Jelajahi panduan tentang menambahkan layanan identitas dan otentikasi lainnya: