Cara menggunakan firebase php tutorial

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

  • Firebase
  • Dokumentasi Firebase
  • Authentication
  • Build

Kirim masukanMelakukan Autentikasi dengan Firebase di Android Menggunakan Nomor TeleponTetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Anda dapat menggunakan Firebase Authentication untuk memproses login pengguna 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 alur login untuk login dengan nomor telepon serta login berbasis sandi dan gabungan. Dokumen ini berisi penjelasan mengenai cara mengimplementasikan alur login dengan nomor telepon menggunakan Firebase SDK.

Nomor telepon yang diberikan pengguna akhir untuk autentikasi akan dikirim dan disimpan oleh Google untuk meningkatkan kualitas pencegahan spam dan penyalahgunaan di seluruh layanan Google, termasuk, tetapi tidak terbatas pada, Firebase. Para developer harus memastikan bahwa mereka memiliki izin pengguna akhir yang sesuai sebelum menggunakan layanan login dengan nomor telepon dari Firebase Authentication.

Sebelum memulai

  1. Tambahkan Firebase ke project Android jika Anda belum melakukannya.
  2. Dalam file Gradle modul (level aplikasi), (biasanya
    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:31.1.1')
    
        // 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'
    }
    
    2), tambahkan dependensi untuk library Android Firebase Authentication. Sebaiknya gunakan untuk mengontrol pembuatan versi library.

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:31.1.1')
    
        // 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 , aplikasi Anda akan selalu menggunakan versi library Android Firebase yang kompatibel.

    (Alternatif) Tambahkan dependensi library Firebase tanpa menggunakan BoM

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

    Perlu diperhatikan bahwa jika Anda menggunakan beberapa library Firebase di aplikasi, sebaiknya gunakan BoM untuk mengelola versi library, 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'
    }
    

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:31.1.1')
    
        // 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 , aplikasi Anda akan selalu menggunakan versi library Android Firebase yang kompatibel.

    (Alternatif) Tambahkan dependensi library Firebase tanpa menggunakan BoM

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

    Perlu diperhatikan bahwa jika Anda menggunakan beberapa library Firebase di aplikasi, sebaiknya gunakan BoM untuk mengelola versi library, 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'
    }
    

  3. Jika belum menghubungkan aplikasi ke project Firebase, lakukanlah dari Firebase console.
  4. Tentukan hash SHA-1 aplikasi Anda di Firebase console jika Anda belum melakukannya. Baca artikel Mengautentikasi Klien untuk mengetahui cara menemukan hash SHA-1 aplikasi.

Masalah keamanan

Meskipun mudah, autentikasi hanya melalui nomor telepon kurang aman dibandingkan metode lain yang tersedia, karena nomor tersebut dapat berpindah tangan antarpengguna 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 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 memproses login pengguna 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 Sign-in Method, aktifkan metode login dengan Phone Number.

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

Mengaktifkan verifikasi aplikasi

Untuk menggunakan autentikasi dengan nomor telepon, Firebase harus dapat memverifikasi bahwa permintaan login dengan nomor telepon berasal dari aplikasi Anda. Ada dua cara yang digunakan Firebase Authentication untuk menyelesaikan hal ini:

  • SafetyNet: Jika Layanan Google Play sudah terinstal di perangkat pengguna, dan Firebase Authentication dapat memverifikasi bahwa perangkat tersebut sah dengan Android SafetyNet, proses login dengan nomor telepon dapat dilanjutkan.
  • Untuk mengaktifkan SafetyNet agar dapat digunakan dengan Firebase Authentication:

    1. Di Google Cloud Console, aktifkan Android Device Verification (DEPRECATED) API untuk project Anda. Kunci Firebase API default akan digunakan, dan perlu diizinkan untuk mengakses DeviceCheck API.
    2. Jika belum menentukan sidik jari SHA-256 aplikasi, lakukanlah dari Halaman Settings di Firebase console. Baca artikel Mengautentikasi Klien untuk mengetahui detail tentang cara mendapatkan sidik jari SHA-256 aplikasi.
    3. SafetyNet Attestation API tidak digunakan lagi dan telah diganti dengan Play Integrity API. Kami sedang mengupayakan jalur migrasi ke Play Integrity API, yang diharapkan akan tersedia dalam linimasa penghentian SafetyNet.

      Setelah 31 Januari 2023, Anda tidak akan dapat mengaktifkan Android Device Verification (SafetyNet) API di Google Cloud Console. Untuk mengaktifkan Android Device Verification (SafetyNet) API dalam project baru setelah 31 Januari 2023, kirimkan formulir Orientasi SafetyNet Attestation API.

      SafetyNet memiliki kuota default yang memadai untuk sebagian besar aplikasi. Lihat bagian untuk informasi selengkapnya.
  • Verifikasi reCAPTCHA: Jika SafetyNet tidak dapat digunakan, seperti saat pengguna tidak memiliki dukungan Layanan Google Play, atau saat menguji aplikasi di emulator, Firebase Authentication akan menggunakan verifikasi reCAPTCHA untuk menyelesaikan alur login dengan nomor telepon. Tantangan reCAPTCHA sering kali dapat diselesaikan sekalipun pengguna tidak memecahkan apa pun. Perhatikan bahwa alur ini memerlukan SHA-1 yang dikaitkan dengan aplikasi Anda. Alur ini juga mengharuskan Kunci API Anda tidak dibatasi atau diizinkan untuk "${PROJECT_NAME}.firebaseapp.com".
  • Alur reCAPTCHA hanya akan dipicu jika SafetyNet tidak tersedia atau perangkat Anda tidak lulus pemeriksaan kecurigaan. Meskipun demikian, Anda harus memastikan bahwa kedua skenario berfungsi dengan benar.

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 dapat berbeda-beda. Namun, sebagai praktik terbaik dan demi menetapkan ekspektasi pengguna, sebaiknya beri tahukan bahwa jika mereka menggunakan metode login melalui telepon, akan muncul pesan SMS berisi permintaan verifikasi dan pemberlakuan tarif standar.

Kemudian, teruskan nomor telepon tersebut ke metode

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.1')

    // 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'
}
3 untuk meminta agar Firebase memverifikasinya. Contoh:

Kotlin+KTX

val options = PhoneAuthOptions.newBuilder(auth)
    .setPhoneNumber(phoneNumber)       // Phone number to verify
    .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
    .setActivity(this)                 // Activity (for callback binding)
    .setCallbacks(callbacks)          // OnVerificationStateChangedCallbacks
    .build()
PhoneAuthProvider.verifyPhoneNumber(options)

Java

PhoneAuthOptions options =
  PhoneAuthOptions.newBuilder(mAuth)
      .setPhoneNumber(phoneNumber)       // Phone number to verify
      .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
      .setActivity(this)                 // Activity (for callback binding)
      .setCallbacks(mCallbacks)          // OnVerificationStateChangedCallbacks
      .build();
  PhoneAuthProvider.verifyPhoneNumber(options);     

Catatan: Bergantung pada paket penagihan, Anda mungkin dibatasi dengan kuota harian pesan SMS yang dikirim. Lihat .

Metode

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.1')

    // 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'
}
4 bersifat reentrant: jika dipanggil berkali-kali, misalnya dalam metode
dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.1')

    // 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'
}
5 aktivitas, metode
dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.1')

    // 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'
}
4 tidak akan mengirim SMS kedua kecuali jika waktu tunggu permintaan aslinya telah habis.

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 memanggil

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.1')

    // 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'
}
4, tetapkan flag yang menunjukkan bahwa verifikasi sedang berlangsung. Kemudian, simpan flag tersebut di metode
dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.1')

    // 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'
}
8 Aktivitas Anda dan pulihkan di
dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.1')

    // 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'
}
9. Terakhir, dalam metode
dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.1')

    // 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'
}
5 Aktivitas tersebut, pastikan bahwa verifikasi sudah berlangsung, dan jika ya, panggil
dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.1')

    // 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'
}
4 lagi. Pastikan untuk menghapus flag saat verifikasi selesai atau gagal (baca artikel tentang ).

Untuk dapat dengan mudah menangani rotasi layar dan instance mulai ulang Aktivitas lainnya, teruskan Aktivitas Anda ke metode

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.1')

    // 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'
}
4. 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 dilokalkan dengan menentukan bahasa autentikasi melalui metode

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'
}
3 pada instance Auth Anda.

Kotlin+KTX

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

Java

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

Saat memanggil

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.1')

    // 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'
}
3, Anda juga harus menyediakan instance
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'
}
5 yang berisi penerapan fungsi callback yang menangani hasil permintaan. Contoh:

Kotlin+KTX

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 later
        storedVerificationId = verificationId
        resendToken = token
    }
}

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

Callback verifikasi

Di sebagian besar aplikasi, Anda akan menerapkan callback

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'
}
6,
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'
}
7, dan
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'
}
8. Anda juga dapat menerapkan
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'
}
9 jika memang sesuai dengan 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). Ini menggunakan SMS Retriever API, yang menyertakan hash 11 karakter di bagian akhir pesan SMS.
Dalam kedua kasus tersebut, nomor telepon pengguna telah berhasil diverifikasi, dan Anda dapat menggunakan objek
val options = PhoneAuthOptions.newBuilder(auth)
    .setPhoneNumber(phoneNumber)       // Phone number to verify
    .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
    .setActivity(this)                 // Activity (for callback binding)
    .setCallbacks(callbacks)          // OnVerificationStateChangedCallbacks
    .build()
PhoneAuthProvider.verifyPhoneNumber(options)
0 yang diteruskan ke callback untuk .

onVerificationFailed(FirebaseException)

Metode ini dipanggil sebagai respons atas permintaan verifikasi yang tidak valid, seperti permintaan yang berisi 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 diberikan.

Saat metode ini dipanggil, sebagian besar aplikasi akan menampilkan UI yang meminta pengguna untuk memasukkan kode verifikasi dari pesan SMS. (Pada saat bersamaan, verifikasi otomatis mungkin berlangsung di latar belakang). Selanjutnya, setelah pengguna memasukkan kode verifikasi, Anda dapat menggunakannya beserta ID verifikasi yang diteruskan ke metode tersebut untuk membuat objek

val options = PhoneAuthOptions.newBuilder(auth)
    .setPhoneNumber(phoneNumber)       // Phone number to verify
    .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
    .setActivity(this)                 // Activity (for callback binding)
    .setCallbacks(callbacks)          // OnVerificationStateChangedCallbacks
    .build()
PhoneAuthProvider.verifyPhoneNumber(options)
0, yang bisa digunakan untuk memproses login pengguna. Namun, beberapa aplikasi mungkin akan menunggu hingga
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'
}
9 dipanggil sebelum menampilkan UI kode verifikasi (tidak direkomendasikan).

onCodeAutoRetrievalTimeOut(String verificationId)

Opsional. Metode ini dipanggil setelah durasi waktu tunggu yang ditetapkan ke

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.1')

    // 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'
}
4 habis dan
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'
}
6 belum terpicu. 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 memasukkan kode verifikasi dari pesan SMS (tidak direkomendasikan).

Membuat objek PhoneAuthCredential

Setelah pengguna memasukkan kode verifikasi yang dikirimkan Firebase ke ponselnya, buat objek

val options = PhoneAuthOptions.newBuilder(auth)
    .setPhoneNumber(phoneNumber)       // Phone number to verify
    .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
    .setActivity(this)                 // Activity (for callback binding)
    .setCallbacks(callbacks)          // OnVerificationStateChangedCallbacks
    .build()
PhoneAuthProvider.verifyPhoneNumber(options)
0 menggunakan kode verifikasi tersebut dan ID verifikasi yang diteruskan ke callback
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'
}
8 atau
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'
}
9. (Saat
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'
}
6 dipanggil, Anda akan langsung mendapatkan objek
val options = PhoneAuthOptions.newBuilder(auth)
    .setPhoneNumber(phoneNumber)       // Phone number to verify
    .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
    .setActivity(this)                 // Activity (for callback binding)
    .setCallbacks(callbacks)          // OnVerificationStateChangedCallbacks
    .build()
PhoneAuthProvider.verifyPhoneNumber(options)
0 sehingga bisa melewatkan langkah ini.)

Untuk membuat objek

val options = PhoneAuthOptions.newBuilder(auth)
    .setPhoneNumber(phoneNumber)       // Phone number to verify
    .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
    .setActivity(this)                 // Activity (for callback binding)
    .setCallbacks(callbacks)          // OnVerificationStateChangedCallbacks
    .build()
PhoneAuthProvider.verifyPhoneNumber(options)

0, panggil
PhoneAuthOptions options =
  PhoneAuthOptions.newBuilder(mAuth)
      .setPhoneNumber(phoneNumber)       // Phone number to verify
      .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
      .setActivity(this)                 // Activity (for callback binding)
      .setCallbacks(mCallbacks)          // OnVerificationStateChangedCallbacks
      .build();
  PhoneAuthProvider.verifyPhoneNumber(options);     
1:

Kotlin+KTX

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'
}
0

Java

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'
}
1

Untuk mencegah penyalahgunaan, Firebase memberlakukan batasan jumlah pesan SMS yang bisa dikirimkan ke satu nomor telepon dalam jangka waktu tertentu. Jika Anda melewati batas ini, permintaan verifikasi nomor telepon dapat tertahan. Jika mengalami masalah ini selama proses pengembangan, gunakan nomor telepon lain untuk melakukan pengujian, atau ulangi permintaan tersebut nanti.

Memproses login pengguna

Setelah mendapatkan objek

val options = PhoneAuthOptions.newBuilder(auth)
    .setPhoneNumber(phoneNumber)       // Phone number to verify
    .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
    .setActivity(this)                 // Activity (for callback binding)
    .setCallbacks(callbacks)          // OnVerificationStateChangedCallbacks
    .build()
PhoneAuthProvider.verifyPhoneNumber(options)
0, baik dalam callback
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'
}
6 maupun dengan memanggil
PhoneAuthOptions options =
  PhoneAuthOptions.newBuilder(mAuth)
      .setPhoneNumber(phoneNumber)       // Phone number to verify
      .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
      .setActivity(this)                 // Activity (for callback binding)
      .setCallbacks(mCallbacks)          // OnVerificationStateChangedCallbacks
      .build();
  PhoneAuthProvider.verifyPhoneNumber(options);     
1, selesaikan alur login dengan meneruskan objek
val options = PhoneAuthOptions.newBuilder(auth)
    .setPhoneNumber(phoneNumber)       // Phone number to verify
    .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
    .setActivity(this)                 // Activity (for callback binding)
    .setCallbacks(callbacks)          // OnVerificationStateChangedCallbacks
    .build()
PhoneAuthProvider.verifyPhoneNumber(options)
0 ke
PhoneAuthOptions options =
  PhoneAuthOptions.newBuilder(mAuth)
      .setPhoneNumber(phoneNumber)       // Phone number to verify
      .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
      .setActivity(this)                 // Activity (for callback binding)
      .setCallbacks(mCallbacks)          // OnVerificationStateChangedCallbacks
      .build();
  PhoneAuthProvider.verifyPhoneNumber(options);     
6:

Kotlin+KTX

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'
}
2

Java

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'
}
3

Menguji dengan nomor telepon fiktif

Anda dapat menyiapkan nomor telepon fiktif untuk pengembangan melalui Firebase console. Pengujian dengan nomor telepon fiktif memberikan sejumlah manfaat berikut:

  • Menguji autentikasi nomor telepon tanpa menghabiskan kuota penggunaan Anda.
  • Menguji autentikasi nomor telepon tanpa benar-benar mengirim pesan SMS.
  • Menjalankan pengujian berturut-turut dengan nomor telepon yang sama tanpa throttling. 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 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 fiktif harus memenuhi persyaratan berikut:

  1. Pastikan nomor telepon yang digunakan benar-benar fiktif dan belum pernah ada. Firebase Authentication tidak mengizinkan nomor telepon yang memang ada dan digunakan oleh pengguna sungguhan sebagai nomor telepon pengujian. Salah satu opsinya adalah menggunakan nomor berawalan 555 sebagai nomor telepon pengujian di Amerika Serikat, misalnya: +1 650-555-3434
  2. Nomor telepon harus diformat dengan benar menurut batasan panjang dan batasan lainnya. Nomor telepon tersebut akan melalui validasi yang sama seperti nomor telepon pengguna sungguhan.
  3. Anda dapat menambahkan hingga 10 nomor telepon untuk proses pengembangan.
  4. Gunakan nomor telepon/kode pengujian yang sulit ditebak dan seringlah mengubahnya.

Membuat nomor telepon dan kode verifikasi fiktif

  1. Di Firebase console, buka bagian Authentication.
  2. Di tab Sign-in method, aktifkan penyedia Phone jika Anda belum melakukannya.
  3. Buka menu akordeon Phone numbers for testing.
  4. Berikan nomor telepon yang ingin Anda uji, misalnya: +1 650-555-3434.
  5. Sediakan kode verifikasi 6 digit untuk nomor tersebut, misalnya: 654321.
  6. Klik Add untuk menambahkan 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 fiktif dalam aplikasi. Dengan demikian, Anda bisa langsung melakukan pengujian manual selama tahap pengembangan tanpa mengalami masalah kuota atau throttling. Anda juga dapat menguji langsung dari simulator iOS atau emulator Android tanpa menginstal Layanan Google Play.

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

Saat login selesai, pengguna Firebase dibuat dengan nomor telepon itu. Pengguna tersebut memiliki perilaku dan properti seperti halnya pengguna nomor telepon sungguhan 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 sungguhan.

Karena token ID untuk nomor telepon fiktif memiliki tanda tangan yang sama dengan pengguna nomor telepon sungguhan, simpan nomor-nomor ini dengan aman dan teruslah mendaur ulangnya.

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

Untuk memicu alur reCAPTCHA secara manual untuk pengujian, gunakan metode

PhoneAuthOptions options =
  PhoneAuthOptions.newBuilder(mAuth)
      .setPhoneNumber(phoneNumber)       // Phone number to verify
      .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
      .setActivity(this)                 // Activity (for callback binding)
      .setCallbacks(mCallbacks)          // OnVerificationStateChangedCallbacks
      .build();
  PhoneAuthProvider.verifyPhoneNumber(options);     
7.

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'
}
4

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 demikian, pengujian otomatisasi dapat dilakukan dalam alur ini dan lebih mudah diimplementasikan. Selain itu, API ini memungkinkan pengujian alur verifikasi instan di Android.

Pastikan verifikasi aplikasi tidak dinonaktifkan untuk aplikasi produksi dan tidak ada nomor telepon fiktif yang ditulis secara hardcode di aplikasi produksi Anda.

Di Android, panggil

PhoneAuthOptions options =
  PhoneAuthOptions.newBuilder(mAuth)
      .setPhoneNumber(phoneNumber)       // Phone number to verify
      .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
      .setActivity(this)                 // Activity (for callback binding)
      .setCallbacks(mCallbacks)          // OnVerificationStateChangedCallbacks
      .build();
  PhoneAuthProvider.verifyPhoneNumber(options);     
8 sebelum panggilan
PhoneAuthOptions options =
  PhoneAuthOptions.newBuilder(mAuth)
      .setPhoneNumber(phoneNumber)       // Phone number to verify
      .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
      .setActivity(this)                 // Activity (for callback binding)
      .setCallbacks(mCallbacks)          // OnVerificationStateChangedCallbacks
      .build();
  PhoneAuthProvider.verifyPhoneNumber(options);     
9. Tindakan ini akan otomatis menonaktifkan verifikasi aplikasi sehingga Anda dapat meneruskan nomor telepon tanpa menyelesaikannya secara manual. Perhatikan bahwa meskipun reCAPTCHA dan/atau SafetyNet dinonaktifkan, penggunaan nomor telepon sungguhan akan tetap menggagalkan proses login. Hanya nomor telepon fiktif yang dapat digunakan dengan API ini.

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'
}
5

Memanggil

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.1')

    // 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'
}
4 dengan nomor fiktif akan memicu callback
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'
}
8, dan Anda harus memberikan kode verifikasi yang sesuai. Hal ini memungkinkan pengujian di Android Emulator.

Java

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'
}
6

Kotlin+KTX

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

Selain itu, Anda dapat menguji alur pemungutan otomatis di Android dengan menetapkan nomor fiktif dan kode verifikasinya untuk fitur pemungutan otomatis dengan memanggil

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

Jika

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.1')

    // 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'
}
4 dipanggil,
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'
}
6 akan langsung terpicu dengan
val options = PhoneAuthOptions.newBuilder(auth)
    .setPhoneNumber(phoneNumber)       // Phone number to verify
    .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
    .setActivity(this)                 // Activity (for callback binding)
    .setCallbacks(callbacks)          // OnVerificationStateChangedCallbacks
    .build()
PhoneAuthProvider.verifyPhoneNumber(options)
0. Ini hanya berfungsi dengan nomor telepon fiktif.

Pastikan ini dinonaktifkan dan tidak ada nomor telepon fiktif yang ditulis secara hardcode di aplikasi Anda saat memublikasikan aplikasi ke Google Play Store.

Java

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'
}
8

Kotlin+KTX

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'
}
9

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, terlepas dari cara pengguna login.

  • Di aplikasi, Anda bisa mendapatkan informasi profil dasar pengguna dari objek

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

  • Di Aturan Keamanan Firebase Realtime Database dan Cloud Storage, Anda bisa mendapatkan ID pengguna unik untuk pengguna yang login dari variabel

    auth.setLanguageCode("fr")
    // To apply the default app language instead of explicitly setting it.
    // auth.useAppLanguage()
    7, dan menggunakannya untuk mengontrol data apa saja yang dapat diakses oleh pengguna.

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

Bagaimana cara kerja Firebase?

Cara kerja Firebase Setelah data disimpan di drive lokal, Firebase akan mengirim salinan ke server cloud sehingga kedua versi menjadi konsisten. Jadi cloud akan direplikasi secara lokal. Server-side developer bisa melakukan komunikasi dengan software milik klien yang dijalankan dengan menulis data ke cloud Firebase.

Firebase digunakan untuk apa?

Firebase Realtime Database adalah database NoSQL yang di-hosting di cloud dan dapat digunakan untuk menyimpan dan menyinkronkan data antarpengguna secara real time.

Apakah Firebase menggunakan api?

Firebase memiliki API intuitif yang dikemas dalam 1 SDK, sehingga dapat membantu Anda mengembangkan aplikasi berkualitas tinggi dengan cepat. Firebase juga menyediakan banyak fitur yang dapat digunakan untuk memperluas basis pengguna dan menghasilkan lebih banyak uang.

Apakah Firebase gratis?

Dulu Firebase hanya memberikan service trial (percobaan), namun saat ini kita bisa memanfaatkan dan menggunakan layanan Firebase secara gratis. Tentu saja dengan batasan-batasan tertentu.