Android'de Firebase Telefon Numarası Doğrulama'yı kullanmaya başlama

Bu sayfada, Android uygulamasında Firebase Phone Number Verification kullanmaya nasıl başlayacağınız açıklanmaktadır. Bu özelliğin genel açıklaması için genel bakış bölümüne bakın.

Bu sayfadaki adımları uygulayarak Firebase PNV için kullanıcı işlemleri akışlarını uygulamaya hızlıca başlayabilirsiniz. Test amacıyla, sahte bir telefon numarasına çözümlenen, yalnızca test amaçlı bir jeton oluşturacaksınız. Bu test jetonunu kullanarak faturalandırma hesabı veya gerçek SIM'i olan bir cihaz olmadan uygulamanıza Firebase PNV eklemeye başlayabilirsiniz.

Uygulamanızdaki Firebase PNV kullanıcı deneyiminden memnun kaldığınızda uygulamanızı üretime geçirmek için bazı ek adımları uygulayabilirsiniz.

Başlamadan önce

1. Firebase PNV kitaplığını uygulamanıza ekleme

Modülünüzün (uygulama düzeyinde) Gradle dosyasında (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle) Android için Firebase Phone Number Verification kitaplığına olan bağımlılığı ekleyin. Kitaplık sürümünü kontrol etmek için Firebase Android BoM kullanmanızı öneririz.

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

    // Add the dependencies for the Firebase Phone Number Verification libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-pnv")
}

Firebase Android BoM kullanarak uygulamanızın her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanmasını sağlayabilirsiniz.

(Alternatif)  BoM kullanmadan Firebase kitaplığı bağımlılıklarını ekleme

Firebase BoM kullanmamayı tercih ederseniz her Firebase kitaplığı sürümünü kendi bağımlılık satırında belirtmeniz gerekir.

Uygulamanızda birden fazla Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için BoM kullanmanızı önemle tavsiye ederiz. Bu sayede tüm sürümlerin uyumlu olmasını sağlayabilirsiniz.

dependencies {
    // Add the dependencies for the Firebase Phone Number Verification libraries
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-pnv:17.0.0")
}

2. Firebase PNV kitaplığını test modunda başlatma

  1. Firebase konsolunda Security (Güvenlik) > Phone Verification (Telefon Doğrulama) > Testing (Test) sekmesine gidin.

  2. Kod oluştur'u tıklayın.

  3. Uygulamanızda, test oturumu kullanmak için Firebase PNV istemcisini başlatın:

    Kotlin

    Kitaplığı içe aktarın:

    import com.google.firebase.pnv.FirebasePhoneNumberVerification
    

    FirebasePhoneNumberVerification sınıfının yeni bir örneğini oluşturun ve tüm Firebase PNV çağrıları için bu örneği kullanın.

    val fpnv = FirebasePhoneNumberVerification.getInstance()
    

    Önceki adımda oluşturduğunuz jetonu kullanarak bir test oturumu etkinleştirin:

    fpnv.enableTestSession("COPIED_TOKEN_STRING")
    

    Bu yöntemi bir FirebasePhoneNumberVerification örneğinde yalnızca bir kez çağırmanız gerekir. Sonraki çağrılar hata verir.

Test jetonlarının 7 günlük bir TTL'si vardır. Bu sürenin ardından test oturumlarını etkinleştirmek için yeni bir jeton oluşturmanız gerekir. Test jetonları fiziksel cihazlarda ve emülatörlerde çalışır. Bu nedenle, uygulamanızdaki kullanıcı deneyiminin prototipini oluşturmak veya CI/CD'de test etmek için idealdir.

3. Önerilen: Firebase PNV desteğini kontrol edin

Numara girişi kullanıcı arayüzünü veya açıklayıcı kullanıcı arayüzünü ne zaman göstereceğinizi belirlemenize yardımcı olması için uygulama başlatıldığında cihazın ve SIM kartının Firebase PNV özelliğini destekleyip desteklemediğini kontrol etmeniz önerilir. Bu, kullanıcı rızası gerektirmeyen bir ön kontroldür. Bu testin sonucunu kullanarak Firebase PNV akışını başlatmaya veya SMS gibi alternatif bir telefon numarası doğrulama yöntemi kullanmaya karar verebilirsiniz.

Cihazın uyumluluğunu kontrol etmek için getVerificationSupportInfo() yöntemini çağırın. Etkin bir test oturumunuz varken bu yöntem, projenizde etkin olan test jetonu için tek bir giriş içeren bir liste döndürür. Daha sonra, uygulamanızı üretime geçirdiğinizde bu yöntem, cihazdaki her SIM için bir sonuç döndürür.

Kotlin

// Check all SIMs for support.
fpnv.getVerificationSupportInfo()
.addOnSuccessListener { results ->
  if (results.any { it.isSupported() }) {
    // At least one SIM is supported; okay to call getVerifiedPhoneNumber
    // (see the next step).
  } else {
    // No SIMs are supported, so fall back to SMS verification.
  }
}
.addOnFailureListener { e ->
  // Handle error.
}

4. Doğrulama akışını başlatma

Firebase PNV akışını başlatmak için getVerifiedPhoneNumber() yöntemini çağırın:

Kotlin

fpnv.getVerifiedPhoneNumber(this@MainActivity)
.addOnSuccessListener { result ->
  // In test mode, this phone number will have a valid country code,
  // followed by all zeros.
  val phoneNumber = result.getPhoneNumber()
  val token = result.getToken()

  // Verification successful. Send token to your backend. (See Next Steps.)
}
.addOnFailureListener { e ->
  // Handle failures, such as the user declining consent or a network error.
}

getVerifiedPhoneNumber() yöntemi, telefon numarası doğrulama akışının tamamını gerçekleştirir. Bu akışa şunlar dahildir:

  • Kullanıcının telefon numarasını paylaşmak için kullanıcı iznini almak üzere Android Kimlik Bilgisi Yöneticisi'ni kullanma.
  • İstek, Firebase PNV arka ucuna gönderiliyor.
  • Cihazın doğrulanmış telefon numarasını içeren bir jeton döndürme (üretim uygulamasında faturalandırma bu aşamada gerçekleşir).

Sonraki adımlar

  • Bu sayfada, birleştirilmiş tek çağrılı API'yi kullanarak Firebase PNV ile nasıl entegrasyon yapılacağı açıklanmaktadır. Tek bir yöntemi çağırmak, kullanıcı rızası almaktan Firebase PNV arka ucuna gerekli ağ çağrılarını yapmaya kadar tüm Firebase PNV kullanıcı işlemleri akışını yönetir. Bu yöntemi kullanarak entegrasyon adımlarını tek bir yöntem çağrısına indirgemiş olursunuz.

    Bu API çoğu geliştirici için önerilir. Ancak kitaplığın karşılamadığı özel gereksinimleriniz varsa özel bir akış uygulama hakkında bilgi edinmek için Firebase Phone Number Verification akışını özelleştirme sayfasını inceleyin.

  • Doğrulanmış telefon numarasını uygulama istemcisinin dışında kullanıyorsanız telefon numarasının kendisi yerine jetonu iletmeniz gerekir. Böylece, kullandığınızda bütünlüğünü doğrulayabilirsiniz. Firebase PNV jetonlarını doğrulama başlıklı makaleyi inceleyin.

  • Uygulamanızın Firebase PNV akışını ve arka uç entegrasyonunu uygulayıp test ettikten sonra, gerçek doğrulanmış telefon numaralarını almaya başlamak için uygulamanızı üretime geçirebilirsiniz. Üretim moduna yükseltme başlıklı makaleyi inceleyin.