ابدأ مع Firebase Remote Config

يمكنك استخدام Firebase Remote Config لتحديد المعلمات في تطبيقك وتحديث قيمها في السحابة ، مما يسمح لك بتعديل مظهر وسلوك تطبيقك دون توزيع تحديث للتطبيق. هذا دليل يرشدك خلال خطوات لتبدأ، ويقدم بعض نموذج التعليمات البرمجية، وكلها متاحة للاستنساخ أو تحميل من firebase / التشغيل السريع، دائرة الرقابة الداخلية جيثب مستودع.

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

  1. تثبيت SDK Firebase لدائرة الرقابة الداخلية.

  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 ، والتحكم في وقت إتاحة القيم التي تم جلبها لتطبيقك.

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

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

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

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

سويفت

remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

ج موضوعية

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

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

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

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

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

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

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

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

في الحالات التي تريد جلب وتفعيل القيم في مكالمة واحدة، استخدم fetchAndActivateWithCompletionHandler: .

يجلب هذا المثال القيم من الخلفية التكوين عن بعد (وليس مؤقتا القيم) ويدعو 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];
}];

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

خانق

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

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

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

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

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

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