بدء استخدام ميزة "تأكيد رقم الهاتف" في 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:34.13.0"))

    // 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:16.1.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 أيام، وبعد هذه الفترة، ستحتاج إلى إنشاء رمز مميّز جديد لتفعيل جلسات الاختبار. تعمل الرموز المميّزة للاختبار على الأجهزة الفعلية والمحاكيات، ما يجعلها مثالية لإنشاء نموذج أولي لتجربة المستخدم في تطبيقك أو للاختبار في التكامل المستمر/النشر المستمر.

3. ننصحك بما يلي: تحقَّق من مدى توفّر ميزة Firebase PNV

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

للتحقّق من توافق الجهاز، استدعِ الطريقة 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() مسار التحقّق من رقم الهاتف بالكامل، بما في ذلك:

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

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

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

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

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

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