تطبيق Firebase تحقق من أنظمة Apple الأساسية

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

1 المقدمة

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

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

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

ما ستبنيه

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

ماذا ستتعلم

  • كيفية إضافة 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. قم بإنشاء وتثبيت مصنع موفر App Check

  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 موفر App Check.
    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

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

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

أنشئ مشروعًا

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

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

قم بإنشاء مثيل قاعدة بيانات Realtime

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

  1. انقر فوق الزر " إنشاء قاعدة بيانات " لبدء سير عمل إنشاء قاعدة البيانات.
  2. اترك الموقع الافتراضي ( us-central1 ) لقاعدة البيانات دون تغيير ، وانقر فوق التالي .
  3. تأكد من تحديد Locked Mode وانقر فوق الزر Enable لتمكين قواعد الأمان لقاعدة البيانات الخاصة بك.
  4. انتقل إلى علامة التبويب " القواعد " في مستعرض قاعدة بيانات Realtime ، واستبدل القواعد الافتراضية بما يلي:
    {
        "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 Attest في وحدة تحكم Firebase.

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

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

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

7. تكوين App Attest لتطبيقك

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

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

  1. أضف إمكانية App Attest لهدف تطبيقك في مشروع Xcode:
  2. افتح علامة التبويب Signing & Capabilities في إعدادات هدف التطبيق
  3. انقر فوق الزر " + "
  4. في مربع الحوار ، ابحث عن إمكانية App Attest وحددها 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: إنشاء مثيل لموفر تصحيح الأخطاء في المصنع الخاص بك بشكل مشروط

لقد فعلت معظم هذا عندما أنشأت مصنع موفر App Check. في هذه الخطوة ، ستضيف تسجيل سر تصحيح الأخطاء المحلي الذي أنشأه موفر تصحيح الأخطاء ، حتى تتمكن من تسجيل هذا المثيل من التطبيق في وحدة تحكم 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()
}

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

سجّل سر تصحيح الأخطاء في وحدة تحكم Firebase

احصل على سر التصحيح من محاكي iOS الخاص بك

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

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

قم بتسجيل سر التصحيح

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

بعد هذه الخطوات ، يمكنك استخدام التطبيق على Simulator حتى مع تطبيق التحقق من التطبيق.

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

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

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

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

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

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

64e6a81fa979b635.png

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

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

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

للاطلاع على تطبيق "التحقق من التطبيق" قيد التنفيذ ، اتبع الخطوات التالية:

  1. قم بإيقاف تشغيل تسجيل التحقق من التطبيق عن طريق التعليق على رمز تسجيل التحقق من التطبيق في طريقة init لنقطة إدخال التطبيق الخاص بك في DatabaseExampleApp .
  2. أعد تعيين المحاكي عن طريق تحديد الجهاز> محو كل المحتوى والإعدادات . سيؤدي هذا إلى مسح المحاكي (وإبطال رمز الجهاز المميز).
  3. قم بتشغيل التطبيق مرة أخرى على Simulator.
  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

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

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

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

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

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

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