التحقق من تطبيق Firebase لمنصات Apple

1 المقدمة

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

يمكنك معرفة المزيد حول Firebase App Check في وثائق Firebase.

يستخدم App Check خدمات خاصة بالنظام الأساسي للتحقق من سلامة التطبيق و/أو الجهاز. وتسمى هذه الخدمات مقدمي التصديق . أحد هذه الخدمات هو خدمة App Attest من Apple، والتي يمكن أن يستخدمها App Check للتحقق من صحة تطبيقات وأجهزة Apple.

ما سوف تبنيه

في هذا الدرس التطبيقي حول التعليمات البرمجية، ستضيف "التحقق من التطبيق" وتفرضه في نموذج تطبيق موجود بحيث تتم حماية قاعدة بيانات الوقت الفعلي للمشروع من الوصول إليها بواسطة التطبيقات والأجهزة غير الشرعية.

ما ستتعلمه

  • كيفية إضافة Firebase App Check إلى تطبيق موجود.
  • كيفية تثبيت موفري التصديق المختلفين لتطبيق Firebase App Check.
  • كيفية تكوين App Attest لتطبيقك.
  • كيفية تكوين موفر شهادة التصحيح لاختبار تطبيقك على المحاكيات أثناء تطوير التطبيق.

ماذا ستحتاج

  • Xcode 13.3.1 أو الأحدث
  • حساب Apple Developer الذي يسمح لك بإنشاء معرفات تطبيقات جديدة
  • جهاز iOS/iPadOS يدعم App Attest (تعرف على مدى توفر App Attest API )

2. احصل على المشروع المبدئي

يحتوي مستودع Firebase Quickstarts لنظام التشغيل iOS على نماذج تطبيقات لتوضيح منتجات Firebase المختلفة. ستستخدم تطبيق Firebase Database Quickstart لـ SwiftUI كقاعدة لهذا الدرس التطبيقي حول التعليمات البرمجية.

قم باستنساخ مستودع Firebase Quickstarts لنظام iOS من سطر الأوامر:

git clone https://github.com/firebase/quickstart-ios.git
cd quickstart-ios

افتح مشروع تطبيق Realtime Database SwiftUI Quickstart في Xcode:

cd database/DatabaseExampleSwiftUI/DatabaseExample
xed .

3. أضف التحقق من التطبيق إلى تطبيقك

  1. انتظر حتى يقوم Swift Package Manager بحل تبعيات المشروع.
  2. افتح علامة التبويب عام لهدف تطبيق DatabaseExample (iOS) . بعد ذلك، في قسم إطارات العمل والمكتبات والمحتوى المضمن ، انقر فوق الزر + .
  3. حدد لإضافة FirebaseAppCheck .

4. قم بإنشاء وتثبيت مصنع مزود التحقق من التطبيق

  1. في مجموعة الملفات Shared ، أضف مجموعة جديدة باسم AppCheck .
  2. داخل هذه المجموعة، قم بإنشاء فئة مصنع في ملف منفصل، على سبيل المثال MyAppCheckProviderFactory.swift ، مع التأكد من إضافتها إلى هدف DatabaseExample (iOS) :
    import Firebase
    
    class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
      func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
        #if targetEnvironment(simulator)
          // App Attest is not available on simulators.
          // Use a debug provider.
          return AppCheckDebugProvider(app: app)
        #else
          // Use App Attest provider on real devices.
          return AppAttestProvider(app: app)
        #endif
      }
    }
    
  3. بعد ذلك، في DatabaseExampleApp.swift ، تأكد من استيراد FirebaseAppCheck ، وقم بتعيين مثيل لفئة MyAppCheckProviderFactory كمصنع لموفر التحقق من التطبيق.
    import SwiftUI
    import FirebaseCore
    import FirebaseAppCheck
    
    @main
    struct DatabaseExampleApp: App {
      init() {
        // Set an instance of MyAppCheckProviderFactory as an App Check
        // provider factory before configuring Firebase.
        AppCheck.setAppCheckProviderFactory(MyAppCheckProviderFactory())
        FirebaseApp.configure()
      }
      ...
    }
    

5. إنشاء وتكوين مشروع Firebase

لاستخدام App Check في مشروع iOS الخاص بك، يتعين عليك اتباع الخطوات التالية في وحدة تحكم Firebase:

  • قم بإعداد مشروع Firebase.
  • أضف تطبيق iOS الخاص بك إلى مشروع Firebase.
  • تكوين مصادقة Firebase.
  • قم بتهيئة مثيل قاعدة بيانات Realtime الذي ستقوم بحمايته.
  • تكوين التحقق من التطبيق.

إنشاء مشروع

أولاً، تحتاج إلى إنشاء مشروع Firebase.

  1. في وحدة تحكم Firebase ، حدد إضافة مشروع .
  2. قم بتسمية مشروعك App Check Codelab
  3. انقر فوق متابعة.
  4. قم بتعطيل Google Analytics لهذا المشروع، ثم انقر فوق إنشاء مشروع.

إنشاء مثيل قاعدة بيانات في الوقت الحقيقي

انتقل الآن إلى قسم Realtime Database في وحدة تحكم Firebase.

  1. انقر فوق الزر "إنشاء قاعدة بيانات " لبدء سير عمل إنشاء قاعدة البيانات.
  2. اترك الموقع الافتراضي ( us-central1 ) لقاعدة البيانات دون تغيير، ثم انقر فوق "التالي" .
  3. تأكد من تحديد الوضع المقفل وانقر فوق الزر "تمكين" لتمكين قواعد الأمان لقاعدة البيانات الخاصة بك.
  4. انتقل إلى علامة التبويب "القواعد" في متصفح Realtime Database، واستبدل القواعد الافتراضية بما يلي:
    {
        "rules": {
            // User profiles are only readable/writable by the user who owns it
            "users": {
                "$UID": {
                    ".read": "auth.uid == $UID",
                    ".write": "auth.uid == $UID"
                }
            },
            // Posts can be read by anyone but only written by logged-in users.
            "posts": {
                ".read": true,
                ".write": "auth.uid != null",
                "$POSTID": {
                    // UID must match logged in user and is fixed once set
                    "uid": {
                        ".validate": "(data.exists() && data.val() == newData.val()) || newData.val() == auth.uid"
                    },
                    // User can only update own stars
                    "stars": {
                        "$UID": {
                            ".validate": "auth.uid == $UID"
                        }
                    }
                }
            },
            // User posts can be read by anyone but only written by the user that owns it,
            // and with a matching UID
            "user-posts": {
                ".read": true,
                "$UID": {
                    "$POSTID": {
                        ".write": "auth.uid == $UID",
                        ".validate": "data.exists() || newData.child('uid').val() == auth.uid"
                    }
                }
            },
            // Comments can be read by anyone but only written by a logged in user
            "post-comments": {
                ".read": true,
                ".write": "auth.uid != null",
                "$POSTID": {
                    "$COMMENTID": {
                        // UID must match logged in user and is fixed once set
                        "uid": {
                            ".validate": "(data.exists() && data.val() == newData.val()) || newData.val() == auth.uid"
                        }
                    }
                }
            }
        }
    }
    
  5. انقر فوق الزر نشر لتنشيط قواعد الأمان المحدثة.

قم بإعداد تطبيق iOS الخاص بك ليتم توصيله بـ Firebase

لتتمكن من تشغيل نموذج التطبيق على جهاز فعلي، تحتاج إلى إضافة المشروع إلى فريق التطوير الخاص بك حتى يتمكن Xcode من إدارة ملف تعريف التوفير المطلوب لك. اتبع هذه الخطوات لإضافة نموذج التطبيق إلى حساب المطور الخاص بك:

  1. في Xcode، حدد مشروع DatabaseExample في متصفح المشروع.
  2. حدد هدف DatabaseExample (iOS) وافتح علامة التبويب Signing & Capabilities .
  3. من المفترض أن تظهر لك رسالة خطأ تقول "يتطلب التوقيع على DatabaseExample (iOS) فريق تطوير" .
  4. قم بتحديث معرف الحزمة إلى معرف فريد. أسهل طريقة لتحقيق ذلك هي استخدام اسم النطاق العكسي لموقع الويب الخاص بك، على سبيل المثال com.acme.samples.firebase.quickstart.DatabaseExample (يرجى عدم استخدام هذا المعرف؛ اختر المعرف الفريد الخاص بك بدلاً من ذلك).
  5. حدد فريق التطوير الخاص بك.
  6. ستعرف أن كل شيء سار على ما يرام عندما يعرض Xcode "ملف تعريف التوفير: ملف تعريف مُدار بواسطة Xcode" وأيقونة معلومات صغيرة بجوار هذا التصنيف. سيؤدي النقر فوق هذا الرمز إلى عرض المزيد من التفاصيل حول ملف تعريف التوفير.

قم بتوصيل تطبيق iOS الخاص بك

للحصول على شرح متعمق لربط تطبيقك، راجع الوثائق حول إضافة Firebase إلى مشروع iOS الخاص بك . للبدء، اتبع هذه الخطوات الرئيسية في وحدة تحكم Firebase:

  1. من شاشة نظرة عامة على المشروع لمشروعك الجديد، انقر فوق الزر + إضافة تطبيق ثم انقر فوق أيقونة iOS+ لإضافة تطبيق iOS جديد إلى مشروع Firebase الخاص بك.
  2. أدخل معرف الحزمة لتطبيقك (استخدم المعرف الذي حددته في القسم السابق، مثل com.acme.samples.firebase.quickstart.DatabaseExample - ضع في اعتبارك أن هذا يجب أن يكون معرفًا فريدًا)
  3. انقر فوق تسجيل التطبيق .
  4. ينشئ Firebase ملف GoogleService-Info.plist يحتوي على جميع البيانات الوصفية اللازمة لـ Firebase لتطبيقك.
  5. انقر فوق تنزيل GoogleService-Info.plist لتنزيل الملف.
  6. في Xcode، سترى أن المشروع يحتوي بالفعل على ملف يسمى GoogleService-Info.plist . احذف هذا الملف أولاً - ستستبدله بالملف الخاص بمشروع Firebase الخاص بك في الخطوة التالية.
  7. انسخ ملف GoogleService-Info.plist الذي قمت بتنزيله في الخطوة السابقة إلى المجلد الجذر لمشروع Xcode الخاص بك وأضفه إلى هدف DatabaseExample (iOS) ، مع التأكد من تسميته GoogleService-Info.plist
  8. انقر خلال الخطوات المتبقية من عملية التسجيل. نظرًا لأنه تم إعداد نموذج المشروع بشكل صحيح بالفعل، فلن تحتاج إلى إجراء أي تغييرات على التعليمات البرمجية.

تكوين مصادقة Firebase

أوف! هذا قدر كبير من الإعداد حتى الآن، لكن تماسك! إذا كنت جديدًا في Firebase، فقد شاهدت الأجزاء الأساسية من سير العمل التي ستتعرف عليها قريبًا.

الآن، ستقوم بتكوين مصادقة Firebase لهذا التطبيق.

تمكين موفر تسجيل الدخول بالبريد الإلكتروني/كلمة المرور للمصادقة

  1. لا يزال في وحدة تحكم Firebase ، افتح قسم المصادقة في وحدة التحكم.
  2. انقر فوق البدء لإعداد مصادقة Firebase لمشروعك.
  3. حدد علامة التبويب طريقة تسجيل الدخول .
  4. حدد البريد الإلكتروني/كلمة المرور في قسم الموفرين الأصليين .
  5. قم بتمكين البريد الإلكتروني/كلمة المرور وانقر فوق حفظ .

أضف مستخدمًا تجريبيًا

  1. افتح علامة تبويب المستخدمين في قسم المصادقة .
  2. انقر فوق إضافة مستخدم .
  3. حدد بريدًا إلكترونيًا وكلمة مرور للمستخدم الاختباري، ثم انقر فوق "إضافة مستخدم" .

خذ التطبيق لتدور

ارجع إلى Xcode، وقم بتشغيل التطبيق على iOS Simulator. قم بتسجيل الدخول باستخدام البريد الإلكتروني وكلمة المرور للمستخدم الاختباري الذي قمت بإنشائه للتو. بمجرد تسجيل الدخول، قم بإنشاء منشور، ونشر تعليق على منشور موجود، وتمييز المشاركات بنجمة/إلغاء النجمة.

6. قم بتكوين موفر تصديق التطبيق

في هذه الخطوة، ستقوم بتكوين App Check لاستخدام موفر App Attest في وحدة تحكم Firebase.

  1. في وحدة تحكم Firebase، انتقل إلى قسم التحقق من التطبيق في وحدة التحكم.
  2. انقر فوق البدء .
  3. في علامة التبويب "التطبيقات" ، انقر فوق تطبيقك لتوسيع تفاصيله.
  4. انقر فوق App Attest لتكوين App Attest، ثم أدخل معرف الفريق الخاص بحساب Apple Developer الخاص بك (يمكنك العثور عليه في قسم العضوية على بوابة Apple Developer): 1645f7a369b678c2.png
  5. انقر فوق حفظ .

وبهذا، يكون لديك مشروع Firebase عامل متصل بتطبيقنا الجديد، ويتم تمكين التحقق من التطبيق.

أنت الآن جاهز لتهيئة خدمة التصديق الخاصة بنا! لمزيد من المعلومات حول سير العمل هذا، راجع تمكين التحقق من التطبيق باستخدام App Attest على iOS .

7. قم بتكوين شهادة التطبيق لتطبيقك

حان الوقت الآن للحصول على Firebase App Check SDK وتنفيذ بعض أكواد العميل.

أولاً، تحتاج إلى تكوين مشروع Xcode حتى يتمكن SDK من استخدام App Attest API من Apple للتأكد من أن الطلبات المرسلة من تطبيقك تأتي من مثيلات مشروعة لتطبيقك.

  1. أضف إمكانية App Attest لهدف تطبيقك في مشروع Xcode:
  2. افتح علامة التبويب "التوقيع والإمكانات" في إعدادات هدف تطبيقك
  3. انقر فوق الزر " + ".
  4. في مربع الحوار، ابحث عن إمكانية "تصديق التطبيق" وحدِّدها ae84cd988a5fab31.png
  5. سيظهر ملف DatabaseExample (iOS).entitlements في المجلد الجذر لمشروع Xcode الخاص بك بعد تنفيذ الخطوة السابقة.
  6. في ملف DatabaseExample (iOS).entitlements ، قم بتغيير قيمة مفتاح App Attest Environment production.

بمجرد الانتهاء من هذه الخطوات وتشغيل التطبيق على جهاز iOS فعلي (iPhone/iPad)، سيظل التطبيق قادرًا على الوصول إلى قاعدة بيانات Realtime. وفي خطوة لاحقة، ستقوم بفرض التحقق من التطبيق، والذي سيحظر الطلبات المرسلة من التطبيقات والأجهزة غير الشرعية.

لمعرفة المزيد حول سير العمل هذا، راجع تمكين التحقق من التطبيق باستخدام App Attest على iOS .

8. قم بتكوين موفر شهادة تصحيح الأخطاء لمحاكي iOS

يتيح موفر Firebase App Check Debug إمكانية اختبار التطبيقات من خلال فرض Firebase App Check في بيئات غير موثوقة، بما في ذلك iOS Simulator، أثناء عملية التطوير. بعد ذلك، تحتاج إلى تكوين موفر تصحيح الأخطاء معًا.

قم بتثبيت موفر تصحيح أخطاء Firebase في تطبيقك

الخيار 1: إنشاء مثيل لموفر تصحيح الأخطاء بشكل مشروط في المصنع الخاص بك

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

قم بتحديث MyAppCheckProviderFactory.swift بالرمز التالي:

import Firebase

class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
#if targetEnvironment(simulator)
    // App Attest is not available on simulators.
    // Use a debug provider.
    let provider = AppCheckDebugProvider(app: app)

    // Print only locally generated token to avoid a valid token leak on CI.
    print("Firebase App Check debug token: \(provider?.localDebugToken() ?? "" )")

    return provider
#else
    // Use App Attest provider on real devices.
    return AppAttestProvider(app: app)
#endif
  }
}

يمنحنا هذا الأسلوب المزيد من المرونة لتكوين التحقق من التطبيق وفقًا للبيئة. على سبيل المثال، يمكنك استخدام موفري تصديق آخرين مثل DeviceCheck أو موفر تصديق مخصص على إصدارات نظام التشغيل حيث لا يتوفر App Attest . انظر المثال أدناه:

import Firebase

class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
      #if targetEnvironment(simulator)
      // App Attest is not available on simulators.
      // Use a debug provider.
      let provider = AppCheckDebugProvider(app: app)

      // Print only locally generated token to avoid a valid token leak on CI.
      print("Firebase App Check debug token: \(provider?.localDebugToken() ?? "" )")

      return provider
      #else
      if #available(iOS 14.0, *) {
        // Use App Attest provider on real devices.
        return AppAttestProvider(app: app)
      } else {
        return DeviceCheckProvider(app: app)
      }
      #endif
  }
}

الخيار 2: تثبيت AppCheckDebugProviderFactory

بالنسبة للحالات الأبسط، يمكنك تثبيت AppCheckDebugProviderFactory بشكل مؤقت أو مشروط قبل تكوين مثيل تطبيق Firebase:

init() {
#if targetEnvironment(simulator)
  let providerFactory = AppCheckDebugProviderFactory()
#else
  let providerFactory = MyAppCheckProviderFactory()
#endif

  AppCheck.setAppCheckProviderFactory(providerFactory)

  FirebaseApp.configure()
}

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

سجل سر التصحيح الخاص بك في وحدة تحكم Firebase

احصل على سر تصحيح الأخطاء من جهاز iOS Simulator

  1. إذا اخترت تثبيت AppCheckDebugProviderFactory (الخيار 2 أعلاه)، فستحتاج إلى تمكين تسجيل التصحيح لتطبيقك عن طريق إضافة -FIRDebugEnabled إلى وسيطات تشغيل التطبيق: f1c6b477a373e144.png
  2. قم بتشغيل تطبيقك على جهاز محاكاة
  3. ابحث عن سر التصحيح في وحدة تحكم Xcode. يمكنك استخدام مرشح وحدة التحكم للعثور عليه بشكل أسرع: d4c65af93e369c55.png

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

سجل سر التصحيح

  1. مرة أخرى في وحدة تحكم Firevbase، انتقل إلى قسم التحقق من التطبيق .
  2. في علامة التبويب "التطبيقات" ، انقر فوق تطبيقك لتوسيع تفاصيله.
  3. في القائمة الكاملة، حدد إدارة الرموز المميزة لتصحيح الأخطاء : d77c8ff768a00b4b.png
  4. أضف السر الذي قمت بنسخه من وحدة تحكم Xcode، ثم انقر فوق حفظ f845c97b86f694d0.png

بعد هذه الخطوات، يمكنك استخدام التطبيق على جهاز المحاكاة حتى مع فرض التحقق من التطبيق.

ملاحظة: تم تصميم موفر التصحيح خصيصًا للمساعدة في منع تسرب سر التصحيح. مع النهج الحالي، لا تحتاج إلى تخزين سر التصحيح في التعليمات البرمجية المصدر الخاصة بك.

يمكن العثور على مزيد من التفاصيل حول هذا التدفق في الوثائق - راجع استخدام التحقق من التطبيق مع موفر تصحيح الأخطاء على نظام التشغيل iOS .

9. تمكين فرض التحقق من التطبيق لقاعدة بيانات Firebase Realtime

في الوقت الحالي، يعلن تطبيقنا عن AppCheckProviderFactory الذي يُرجع AppAttestProvider للأجهزة الحقيقية. عند التشغيل على جهاز فعلي، سيقوم تطبيقك بإجراء المصادقة وإرسال النتائج إلى الواجهة الخلفية لـ Firebase. ومع ذلك، لا تزال واجهة Firebase الخلفية تقبل الطلبات من أي جهاز، أو iOS Simulator، أو البرنامج النصي، وما إلى ذلك. يكون هذا الوضع مفيدًا عندما لا يزال لديك مستخدمين لديهم إصدار قديم من تطبيقك بدون التحقق من التطبيق، ولا تريد فرض الوصول الشيكات حتى الآن.

أنت الآن بحاجة إلى تمكين فرض التحقق من التطبيق لضمان إمكانية الوصول إلى تطبيق Firebase فقط من الأجهزة الشرعية. ستتوقف إصدارات التطبيق القديمة التي لا تتضمن تكامل التحقق من التطبيق عن العمل بمجرد تمكين التنفيذ لمشروع Firebase.

  1. في وحدة تحكم Firebase في قسم التحقق من التطبيق ، انقر فوق Realtime Database لتوسيع تفاصيلها.
  2. انقر فوق فرض .

64e6a81fa979b635.png

  1. اقرأ المعلومات الموجودة في مربع حوار التأكيد، ثم انقر فوق فرض .

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

حاول الوصول إلى قاعدة بيانات Realtime باستخدام تطبيق غير شرعي

لرؤية تنفيذ التحقق من التطبيق عمليًا، اتبع الخطوات التالية:

  1. قم بإيقاف تشغيل تسجيل التحقق من التطبيق عن طريق التعليق على رمز تسجيل التحقق من التطبيق في طريقة init الخاصة بنقطة إدخال التطبيق في DatabaseExampleApp .
  2. قم بإعادة ضبط المحاكي عن طريق تحديد الجهاز > مسح كافة المحتويات والإعدادات . سيؤدي هذا إلى مسح جهاز المحاكاة (وإبطال الرمز المميز للجهاز).
  3. قم بتشغيل التطبيق مرة أخرى على جهاز المحاكاة.
  4. يجب أن تشاهد الآن رسالة الخطأ التالية:
    [FirebaseDatabase][I-RDB034005] Firebase Database connection was forcefully killed by the server.  Will not attempt reconnect. Reason: Invalid appcheck token.
    

لإعادة تمكين التحقق من التطبيق، قم بما يلي:

  1. قم بإلغاء التعليق على رمز تسجيل التحقق من التطبيق في DatabaseExampleApp .
  2. أعد تشغيل التطبيق.
  3. قم بتدوين رمز التحقق من التطبيق الجديد في وحدة تحكم Xcode.
  4. قم بتسجيل رمز التصحيح في إعدادات التحقق من التطبيق في تطبيقك في وحدة تحكم Firebase.
  5. أعد تشغيل التطبيق.
  6. من المفترض ألا ترى رسالة خطأ بعد الآن، ويجب أن تكون قادرًا على إضافة مشاركات وتعليقات جديدة في التطبيق.

10. تهانينا!

9785d32f18b995d2.gif

الآن أنت تعرف كيفية:

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

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

تعرّف على كيفية استخدام Remote Config لطرح التطبيق تدريجيًا. التحقق من المستخدمين لديك في فحص تطبيق Firebase للطرح تدريجيًا باستخدام البرنامج التعليمي البرمجي لـ Firebase Remote Config

هذه هي الموارد الأخرى التي قد تجدها مفيدة

سيعمل الإعداد الموضح في هذا الدرس التطبيقي حول التعليمات البرمجية في معظم الحالات، ولكن يتيح لك التحقق من التطبيق مزيدًا من المرونة إذا لزم الأمر - راجع الروابط التالية للحصول على مزيد من التفاصيل: