Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

ابدأ مع Firebase Remote Config على iOS

يمكنك استخدام Firebase Remote Config لتحديد المعلمات في تطبيقك وتحديث قيمها في السحابة ، مما يسمح لك بتعديل مظهر وسلوك تطبيقك دون توزيع تحديث للتطبيق.

يرشدك هذا الدليل خلال الخطوات للبدء ويقدم بعض نماذج التعليمات البرمجية ، وكلها متاحة للنسخ أو التنزيل من مستودع firebase / quickstart-ios GitHub.

أضف Remote Config إلى تطبيقك

  1. ثبّت Firebase SDK لنظام iOS.

  2. قم بإنشاء كائن التكوين عن بعد الفردي ، كما هو موضح في المثال التالي:

    سويفت

    remoteConfig = RemoteConfig.remoteConfig()
    let settings = RemoteConfigSettings()
    settings.minimumFetchInterval = 0
    remoteConfig.configSettings = settings

    ج موضوعية

    self.remoteConfig = [FIRRemoteConfig remoteConfig];
    FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] init];
    remoteConfigSettings.minimumFetchInterval = 0;
    self.remoteConfig.configSettings = remoteConfigSettings;

يستخدم هذا الكائن لتخزين قيم المعلمات الافتراضية داخل التطبيق ، وجلب قيم المعلمات المحدثة من الواجهة الخلفية لـ Remote Config ، والتحكم في وقت إتاحة القيم التي تم جلبها لتطبيقك.

أثناء التطوير ، يوصى بتعيين حد أدنى منخفض نسبيًا لفترة الجلب. انظر Throttling لمزيد من المعلومات.

تعيين قيم المعلمات الافتراضية داخل التطبيق

يمكنك تعيين قيم المعلمات الافتراضية داخل التطبيق في كائن Remote Config ، بحيث يعمل تطبيقك على النحو المنشود قبل أن يتصل بالواجهة الخلفية لـ Remote Config ، وبذلك تكون القيم الافتراضية متاحة إذا لم يتم تعيين أي منها في الخلفية.

  1. حدد مجموعة من أسماء المعلمات وقيم المعلمات الافتراضية باستخدام كائن NSDictionary أو ملف plist .
  2. أضف هذه القيم إلى كائن Remote Config باستخدام setDefaults:. يعيّن المثال التالي القيم الافتراضية داخل التطبيق من ملف plist :

سويفت

remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

ج موضوعية

[self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];

احصل على قيم المعلمات لاستخدامها في تطبيقك

يمكنك الآن الحصول على قيم المعلمات من كائن Remote Config. إذا قمت لاحقًا بتعيين القيم في الواجهة الخلفية لـ Remote Config ، وجلبها ، ثم قم بتنشيطها ، فستتوفر هذه القيم لتطبيقك. بخلاف ذلك ، يمكنك الحصول على قيم المعلمات داخل التطبيق التي تم تكوينها باستخدام setDefaults:. للحصول على هذه القيم ، اتصل بالطريقة configValueForKey: ، مع توفير مفتاح المعلمة كوسيطة.

تعيين قيم المعلمات

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

  1. في وحدة تحكم Firebase ، افتح مشروعك.
  2. حدد Remote Config من القائمة لعرض لوحة معلومات Remote Config.
  3. حدد المعلمات بنفس الأسماء مثل المعلمات التي حددتها في تطبيقك. لكل معلمة ، يمكنك تعيين قيمة افتراضية (والتي ستتجاوز في النهاية القيمة الافتراضية داخل التطبيق) ويمكنك أيضًا تعيين القيم الشرطية. لمعرفة المزيد ، راجع معلمات وشروط التكوين عن بُعد .

إحضار القيم وتنشيطها

لجلب قيم المعلمات من Remote Config ، قم باستدعاء fetchWithCompletionHandler: or fetchWithExpirationDuration: completeHandler: method. يتم جلب أي قيم تقوم بتعيينها على الواجهة الخلفية وتخزينها مؤقتًا في كائن Remote Config.

للحالات التي تريد فيها جلب القيم وتنشيطها في مكالمة واحدة ، استخدم fetchAndActivateWithCompletionHandler:

يقوم هذا المثال بجلب القيم من الواجهة الخلفية لـ Remote Config (وليس القيم المخزنة مؤقتًا) ويتم activateWithCompletionHandler: المكالمات activateWithCompletionHandler: لجعلها متاحة للتطبيق:

سويفت

remoteConfig.fetch() { (status, error) -> Void in
  if status == .success {
    print("Config fetched!")
    self.remoteConfig.activate() { (changed, error) in
      // ...
    }
  } else {
    print("Config not fetched")
    print("Error: \(error?.localizedDescription ?? "No error available.")")
  }
  self.displayWelcome()
}

ج موضوعية

[self.remoteConfig fetchWithCompletionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) {
    if (status == FIRRemoteConfigFetchStatusSuccess) {
        NSLog(@"Config fetched!");
      [self.remoteConfig activateWithCompletion:^(BOOL changed, NSError * _Nullable error) {
        // ...
      }];
    } else {
        NSLog(@"Config not fetched");
        NSLog(@"Error %@", error.localizedDescription);
    }
    [self displayWelcome];
}];

نظرًا لأن قيم المعلمات المحدّثة هذه تؤثر في سلوك ومظهر تطبيقك ، يجب عليك تنشيط القيم التي تم جلبها في وقت يضمن تجربة سلسة للمستخدم ، مثل المرة التالية التي يفتح فيها المستخدم تطبيقك. راجع استراتيجيات تحميل Remote Config للحصول على مزيد من المعلومات والأمثلة.

خانق

إذا تم جلب التطبيق عدة مرات في فترة زمنية قصيرة ، FIRRemoteConfigFetchStatusThrottled استدعاءات الجلب وترجع SDK FIRRemoteConfigFetchStatusThrottled . قبل الإصدار 6.3.0 من SDK ، كان الحد هو 5 طلبات إحضار في إطار 60 دقيقة (الإصدارات الأحدث لها حدود أكثر تساهلاً).

أثناء تطوير التطبيق ، قد ترغب في تحديث ذاكرة التخزين المؤقت بشكل متكرر (عدة مرات في الساعة) للسماح لك بالتكرار بسرعة أثناء تطوير التطبيق واختباره. لاستيعاب التكرار السريع في مشروع مع العديد من المطورين ، يمكنك إضافة خاصية FIRRemoteConfigSettings مؤقتًا مع أدنى فترة إحضار منخفضة ( MinimumFetchInterval ) في تطبيقك.

الفاصل الزمني لجلب الإنتاج الافتراضي والموصى به لـ Remote Config هو 12 ساعة ، مما يعني أنه لن يتم جلب التكوينات من الواجهة الخلفية أكثر من مرة في إطار 12 ساعة ، بغض النظر عن عدد استدعاءات الجلب التي تم إجراؤها بالفعل. على وجه التحديد ، يتم تحديد الحد الأدنى لفترة الجلب بالترتيب التالي:

  1. المعلمة في fetch(long)
  2. المعلمة في FIRRemoteConfigSettings.MinimumFetchInterval
  3. القيمة الافتراضية 12 ساعة

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

إذا لم تكن قد قمت بذلك بالفعل ، فاستكشف حالات استخدام Remote Config ، وألق نظرة على بعض المفاهيم الأساسية ووثائق الاستراتيجيات المتقدمة ، بما في ذلك: