إضافة ميزة "إثبات رقم الهاتف" في Firebase إلى تطبيق Android

1. نظرة عامة

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

مربّع الحوار المنبثق في Firebase PNV

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

المتطلبات الأساسية

  • أحدث إصدار من استوديو Android
  • جهاز Android أو محاكي يعمل بالمستوى 26 من واجهة برمجة التطبيقات أو مستوى أحدث

أهداف الدورة التعليمية

  • إعداد مشروع Firebase باستخدام ميزة "التحقّق من أرقام الهاتف" في Firebase
  • استخدِم ميزة "التحقّق من رقم الهاتف" من Firebase في وضع الاختبار لإنشاء نماذج أولية بدون حساب فوترة أو شريحة SIM حقيقية.
  • ادمج حزمة تطوير البرامج (SDK) الخاصة بميزة "الخصوصية المحسّنة" من Firebase في تطبيق Android.
  • تأكيد رقم هاتف باستخدام واجهة برمجة التطبيقات single-call
  • (اختياري) إعداد تطبيقك للإصدار العلني

2. إعداد المشروع النموذجي

إنشاء مشروع Firebase

  1. سجِّل الدخول إلى وحدة تحكّم Firebase باستخدام حساب Google.
  2. انقر على الزر لإنشاء مشروع جديد، ثم أدخِل اسم المشروع (على سبيل المثال، Tera Bites).
  3. انقر على متابعة.
  4. إذا طُلب منك ذلك، راجِع بنود Firebase واقبلها، ثم انقر على متابعة.
  5. (اختياري) فعِّل ميزة "المساعدة المستندة إلى الذكاء الاصطناعي" في وحدة تحكّم Firebase (المعروفة باسم "Gemini في Firebase").
  6. في هذا الدرس العملي، لا تحتاج إلى "إحصاءات Google"، لذا أوقِف خيار "إحصاءات Google".
  7. انقر على إنشاء مشروع، وانتظِر إلى أن يتم توفير مشروعك، ثم انقر على متابعة.

تنزيل الرمز

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

git clone https://github.com/GoogleCloudPlatform/devrel-demos
cd codelabs/firebase-pnv-android

افتح الدليل firebase-pnv-android في "استوديو Android".

ربط مشروع Android بـ Firebase

  1. في "وحدة تحكّم Firebase"، انقر على رمز Android أو إضافة تطبيق في وسط صفحة "نظرة عامة على المشروع" لبدء سير عمل إنشاء التطبيق.
  2. في حقل اسم حزمة Android، أدخِل اسم حزمة التطبيق: com.google.firebase.example.fpnv.
  3. انقر على تسجيل التطبيق.
  4. اتّبِع التعليمات لتنزيل الملف google-services.json، وانقله إلى الدليل app/ الخاص بالرمز الذي نزّلته للتو.
  5. انقر على التالي.

تفعيل Firebase AI Logic

يستخدم هذا الدرس التطبيقي حول الترميز Firebase AI Logic لتشغيل وكيل الذكاء الاصطناعي الصوتي. لتفعيل Firebase AI Logic في مشروع Firebase:

  1. في "وحدة تحكّم Firebase"، انتقِل إلى خدمات الذكاء الاصطناعي > AI Logic.
  2. انقر على البدء.
  3. اختَر استخدام Gemini Developer API من خلال النقر على بدء استخدام واجهة برمجة التطبيقات هذه.
  4. انقر على تفعيل واجهة برمجة التطبيقات وأكِّد ذلك.

3- إعداد ميزة "التحقّق من رقم الهاتف" في Firebase في وضع الاختبار

يتيح لك وضع الاختبار إثبات ملكية رقم هاتف "وهمي" باستخدام رمز مميّز للاختبار لأغراض التطوير.

الانضمام إلى برنامج الإصدار التجريبي المتاح للجميع من الخدمات التابعة لنظام التشغيل من Google

سجِّل جهاز التطوير في قناة الإصدار التجريبي لخدمات نظام التشغيل Google لاستخدام وضع الاختبار:

  1. انتقِل إلى صفحة اختبار تطبيقات Android - خدمات نظام Google.
  2. انقر على الانضمام إلى برنامج الاستخدام التجريبي.

أصبحت الآن أحد مختبِري الإصدار التجريبي من "خدمات النظام" من Google.

إضافة اعتمادية "إشعارات الدفع من Firebase"

في قاعدة رموز مشروع Android، يتم تحديد التبعيات الخاصة بمكتبتَي "المنتجات الجديدة غير المطروحة" وFirebase AI Logic في ملف /gradle/versions.toml على النحو التالي:

[versions]
# ... other dependencies
firebaseBom = "34.12.0"

[libraries]
# ... other libraries
firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBom" }
firebase-ai-logic = { module = "com.google.firebase:firebase-ai" }
firebase-pnv = { module = "com.google.firebase:firebase-pnv" }

في ملف Gradle الخاص بالوحدة (على مستوى التطبيق) (عادةً /app/build.gradle.kts)، حدِّد الاعتمادية لمكتبة "إعلانات الفيديو أثناء التصفّح" من Firebase:

dependencies {
  // ... other dependencies
  implementation(platform(libs.firebase.bom))
  implementation(libs.firebase.ai.logic)

  // Add this line
  implementation(libs.firebase.pnv)

  // ...
}

إنشاء رمز مميّز اختباري

  1. في "وحدة تحكّم Firebase"، انتقِل إلى الأمان > التحقّق من رقم الهاتف.
  2. اختَر علامة التبويب الاختبار.
  3. اختَر رمز البلد لرقم الهاتف التجريبي وانقر على إنشاء رمز مميّز.
  4. انسخ سلسلة الرموز المميزة التي تم إنشاؤها.

تفعيل جلسة الاختبار في الرمز البرمجي

  1. ارجع إلى مشروع Android، وافتح الملف ChatViewModel.kt، وابحث عن الدالة verifyPhoneNumber().
  2. ابدأ تهيئة عميل FirebasePhoneNumberVerification وفعِّل جلسة الاختبار، مع لصق الرمز المميّز الذي نسخته من وحدة تحكّم Firebase:
    suspend fun verifyPhoneNumber(): String {
        // Initialize Firebase Phone Number Verification
        val fpnv = FirebasePhoneNumberVerification.getInstance(context!!)
    
        // Enable Test session
        fpnv.enableTestSession("PASTE_THE_TOKEN_YOU_COPIED_IN_PREV_STEP")
    
        // Trigger the Firebase PNV pop up
        val response = fpnv.getVerifiedPhoneNumber().await()
        val phoneNumber = response.getPhoneNumber()
    
        return phoneNumber
    }
    

4. تشغيل التطبيق

بعد تنفيذ ميزة "التحقّق من صحة الاستخدام" في Firebase، حان الوقت لتشغيل التطبيق.

  1. في استوديو Android، انقر على تشغيل لتشغيل التطبيق في Android Emulator أو على جهاز فعلي.
  2. بعد تشغيل التطبيق، من المفترض أن تظهر لك شاشة بالشكل التالي:
    تشغيل تطبيق PNV على Firebase
  3. انقر على بدء المكالمة، وقدِّم نفسك.
    تشغيل تطبيق PNV على Firebase
  4. يجب أن يطلب منك المساعد الصوتي المستند إلى الذكاء الاصطناعي تقديم تفاصيل الحجز. بعد تقديم التفاصيل، من المفترض أن يُطلب منك النظر إلى الشاشة لتأكيد رقم هاتفك:
    تشغيل تطبيق PNV على Firebase
  5. بعد الانتهاء من ذلك، ستظهر لك شاشة اكتمال عملية التحقّق:
    تشغيل تطبيق PNV على Firebase
  6. انقر على إنهاء الجلسة لإنهاء المكالمة.

5- (اختياري) الترقية إلى وضع الإنتاج

ترقية خطة أسعار Firebase

لاستخدام Firebase PNV في وضع الإنتاج، يجب أن يكون مشروع Firebase الخاص بك على خطة التسعير "الدفع حسب الاستخدام" (Blaze)، ما يعني أنّه مرتبط بحساب فوترة على Cloud.

لترقية مشروعك إلى خطة Blaze، اتّبِع الخطوات التالية:

  1. في "وحدة تحكّم Firebase"، اختَر ترقية خطتك.
  2. اختَر خطة Blaze. اتّبِع التعليمات الظاهرة على الشاشة لربط حساب فوترة على Cloud بمشروعك.
    إذا كان عليك إنشاء حساب فوترة على Cloud كجزء من عملية الترقية هذه، قد تحتاج إلى الرجوع إلى مسار الترقية في وحدة تحكّم Firebase لإكمال عملية الترقية.

تفعيل وضع الإنتاج في ميزة "التحقّق من أمان المنتج" على Firebase

  1. أضِف الملف المرجعي لشهادة SHA-256 الخاصة بتطبيقك:
    1. في وحدة تحكّم Firebase، انتقِل إلى صفحة الإعدادات > الإعدادات العامة.
    2. انتقِل للأسفل إلى بطاقة تطبيقاتك، وابحث عن تطبيق Android.
    3. في حقل الملفات المرجعية لشهادة SHA، أضِف الملف المرجعي لشهادة SHA-256. راجِع مقالة مصادقة العميل للحصول على تفاصيل حول كيفية الحصول على الملف المرجعي لمعيار SHA-256 الخاص بتطبيقك.
  2. ارجع إلى الأمان > تأكيد رقم الهاتف.
  3. انقر على إعداد الإصدار العلني. ستظهر لك قائمة بالتطبيقات في مشروعك التي سيتم تفعيلها للإصدار العلني، وستتاح لك فرصة إضافة تطبيقات أخرى.
  4. إرسال تطبيقك لإجراء عملية إثبات ملكية العلامة التجارية في OAuth ومراجعة سياسة الخصوصية ستتحقّق Google Cloud من أنّك تحدّد تطبيقك وسياسة الخصوصية الخاصة به بوضوح ودقة.
    لبدء المراجعة، انقر على متابعة في Google Cloud. قد تستغرق هذه العملية أحيانًا 24 ساعة أو أكثر.
  5. أثناء انتظار التحقّق من العلامة التجارية، راجِع البنود الخاصة بخدمة "التحقّق من رقم الهاتف" في Firebase، والتي يتم ربطها في وحدة التحكّم.
  6. بعد أن يجتاز تطبيقك عملية إثبات ملكية العلامة التجارية، ضَع علامة في المربّع للإقرار ببنود الخدمة الخاصة، ثم انقر على تفعيل.

أصبحت ميزة "التحقّق من رقم الهاتف" في Firebase متاحة الآن في وضع الإنتاج.

إزالة رمز الاختبار

في مشروع Android، احذف السطر fpnv.enableTestSession(...).

نقل Firebase AI Logic لاستخدام Vertex AI

إذا كنت تستخدم رصيدًا في حساب الفوترة، لن تتمكّن من استخدامه مع Gemini Developer API. ولكن يمكنك استخدامها مع Vertex AI Gemini API.

  1. في "وحدة تحكّم Firebase"، انتقِل إلى خدمات الذكاء الاصطناعي > AI Logic.
  2. انقر على الإعدادات.
  3. ضمن Vertex AI Gemini API، انقر على تفعيل.
  4. في مشروع Android، غيِّر عملية تهيئة Firebase AI Logic لاستخدام الخلفية البرمجية Vertex AI بدلاً من Google AI:
    val model = Firebase.ai(
        backend = GenerativeBackend.vertexAI(location = "us-central1")
    ).liveModel(
        modelName = "gemini-live-2.5-flash-native-audio",
        // ... other configuration
    )
    

6. تهانينا!

لقد نجحت في دمج خدمة "إثبات رقم الهاتف" من Firebase في تطبيق Android.

المواضيع التي تناولناها

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

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