بدء استخدام ميزة "تأكيد رقم الهاتف" في Firebase على Android

توضّح هذه الصفحة كيفية بدء استخدام Firebase Phone Number Verification في تطبيق Android. يمكنك الاطّلاع على النظرة العامة للحصول على وصف عام لهذه الميزة.

باتّباع الخطوات الواردة في هذه الصفحة، يمكنك البدء بسرعة في تنفيذ مسارات المستخدمين في Firebase PNV. لأغراض الاختبار، عليك إنشاء رمز مميّز مخصّص للاختبار فقط يتم تحويله إلى رقم هاتف مزيّف. باستخدام هذا الرمز المميّز التجريبي، يمكنك البدء في إضافة Firebase PNV إلى تطبيقك بدون الحاجة إلى حساب فوترة أو جهاز مزوّد بشريحة SIM حقيقية.

بعد أن تشعر بالرضا عن تجربة مستخدم Firebase PNV في تطبيقك، يمكنك اتّباع بعض الخطوات الإضافية لإنتاج تطبيقك.

قبل البدء

1. إضافة مكتبة Firebase PNV إلى تطبيقك

في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً <project>/<app-module>/build.gradle.kts أو <project>/<app-module>/build.gradle)، أضِف الاعتمادية لمكتبة Firebase Phone Number Verification على Android. ننصح باستخدام Firebase Android BoM للتحكّم في إصدارات المكتبة.

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، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase لنظام التشغيل Android.

(بديل)  إضافة تبعيات مكتبة Firebase بدون استخدام BoM

إذا اخترت عدم استخدام Firebase BoM، عليك تحديد كل إصدار من مكتبة Firebase في سطر التبعية الخاص به.

يُرجى العِلم أنّه في حال استخدام مكتبات Firebase متعددة في تطبيقك، ننصحك بشدة باستخدام BoM لإدارة إصدارات المكتبات، ما يضمن توافق جميع الإصدارات.

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 في وضع الاختبار

  1. في وحدة تحكّم Firebase، انتقِل إلى علامة التبويب الأمان > تأكيد الحساب عبر الهاتف > الاختبار.

  2. انقر على إنشاء رمز مميّز.

  3. في تطبيقك، عليك إعداد برنامج Firebase PNV لاستخدام جلسة اختبار:

    Kotlin

    استيراد المكتبة:

    import com.google.firebase.pnv.FirebasePhoneNumberVerification
    

    يُرجى إنشاء مثيل جديد من فئة FirebasePhoneNumberVerification واستخدام هذا المثيل لجميع طلبات Firebase PNV.

    val fpnv = FirebasePhoneNumberVerification.getInstance()
    

    فعِّل جلسة اختبار باستخدام الرمز المميّز الذي أنشأته في الخطوة السابقة:

    fpnv.enableTestSession("COPIED_TOKEN_STRING")
    

    يجب استدعاء هذه الطريقة مرة واحدة فقط في مثيل FirebasePhoneNumberVerification، لأنّ الاستدعاءات اللاحقة ستؤدي إلى ظهور خطأ.

تبلغ مدة صلاحية الرموز المميّزة الاختبارية 7 أيام، وبعد هذه الفترة، يجب إنشاء رمز مميّز جديد لتفعيل جلسات الاختبار. تعمل الرموز المميّزة الاختبارية على الأجهزة الفعلية والمحاكيات، ما يجعلها مثالية لإنشاء نماذج أولية لتجربة المستخدم في تطبيقك أو الاختبار في CI/CD.

3- الإجراء المقترح: التحقّق من توفّر دعم Firebase PNV

لمساعدتك في تحديد وقت عرض واجهة المستخدم الخاصة بإدخال الرقم أو واجهة المستخدم التوضيحية، ننصحك بالتحقّق عند تشغيل التطبيق مما إذا كان الجهاز وشريحة SIM متوافقَين مع Firebase PNV. هذا فحص مسبق لا يتطلّب موافقة المستخدم. يمكنك استخدام نتيجة هذا الاختبار لتحديد ما إذا كنت تريد بدء عملية Firebase PNV أو استخدام طريقة بديلة لتأكيد رقم الهاتف، مثل الرسائل القصيرة SMS.

للتحقّق من توافق الجهاز، يمكنك استدعاء طريقة getVerificationSupportInfo(). عندما تكون جلسة الاختبار نشطة، ستعرض هذه الطريقة قائمة تحتوي على إدخال واحد لرمز الاختبار النشط في مشروعك. لاحقًا، بعد طرح تطبيقك في السوق، ستعرض هذه الطريقة نتيجة لكل شريحة SIM في الجهاز.

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. بدء عملية التحقّق

لبدء عملية Firebase PNV، استخدِم طريقة getVerifiedPhoneNumber():

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() عملية تأكيد رقم الهاتف بالكامل، بما في ذلك:

  • استخدام واجهة Credential Manager في Android للحصول على موافقة المستخدم على مشاركة رقم هاتفه
  • جارٍ إرسال الطلب إلى الخلفية في Firebase PNV.
  • يتم عرض رمز مميّز يحتوي على رقم الهاتف الذي تم تأكيده للجهاز (في تطبيق إنتاج، يحدث ذلك عند إجراء الفوترة).

الخطوات التالية

  • توضّح هذه الصفحة بالتفصيل كيفية التكامل مع "Firebase PNV" باستخدام واجهة برمجة التطبيقات الموحّدة التي تتطلّب طلبًا واحدًا. يؤدي استدعاء طريقة واحدة إلى معالجة مسار المستخدم في Firebase PNV بالكامل، بدءًا من الحصول على موافقة المستخدم وحتى إجراء طلبات الشبكة اللازمة إلى الخلفية في Firebase PNV. باستخدام هذه الطريقة، يمكنك تقليل خطوات الدمج إلى طلب إجراء واحد.

    ننصح معظم المطوّرين باستخدام واجهة برمجة التطبيقات هذه، ولكن إذا كانت لديك متطلبات محدّدة لا تلبّيها المكتبة، يمكنك الاطّلاع على صفحة تخصيص مسار Firebase Phone Number Verification للحصول على معلومات حول تنفيذ مسار مخصّص.

  • إذا كنت تستخدم رقم الهاتف الذي تم التحقّق منه خارج برنامج التطبيق، عليك تمرير الرمز المميّز بدلاً من رقم الهاتف نفسه حتى تتمكّن من التحقّق من سلامته عند استخدامه. يُرجى الاطّلاع على التحقّق من رموز Firebase PNV المميّزة.

  • بعد تنفيذ واختبار مسار Firebase PNV في تطبيقك ودمجه مع الخلفية، يمكنك طرح تطبيقك في مرحلة الإنتاج لبدء الحصول على أرقام هواتف حقيقية تم التحقّق منها. يُرجى الاطّلاع على الترقية إلى وضع الإنتاج.