بدء استخدام ميزة "الإعداد عن بُعد في Firebase"


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

تُستخدَم مكتبة "الإعداد عن بُعد" لتخزين قيم المَعلمات التلقائية داخل التطبيق وجلب قيم المَعلمات المعدَّلة من خلفية "الإعداد عن بُعد" والتحكّم في وقت توفُّر القيم التي تم استرجاعها لتطبيقك. لمزيد من المعلومات، يُرجى الاطّلاع على استراتيجيات التحميل في ميزة "الإعداد عن بُعد".

الخطوة 1: إضافة Firebase إلى تطبيقك

قبل أن تتمكّن من استخدام الإعداد عن بُعد، عليك إجراء ما يلي:

  • سجّل مشروع C++ الخاص بك واضبطه لاستخدام Firebase.

    إذا كان مشروعك على C++ يستخدم Firebase بالفعل، فإنه قد تم تسجيله وإعداده لـ Firebase.

  • أضِف حزمة تطوير البرامج (SDK) لـ Firebase C++ إلى مشروع C++.

تجدر الإشارة إلى أنّ إضافة Firebase إلى مشروع C++ تتضمّن مهامًا في وحدة تحكُّم Firebase وفي مشروع C++ المفتوح (على سبيل المثال، يمكنك تنزيل ملفات إعداد Firebase من وحدة التحكّم، ثم نقلها إلى مشروع C++ ).

الخطوة 2: إضافة ميزة "الإعداد عن بُعد" إلى تطبيقك

Android

بعد إضافة Firebase إلى تطبيقك:

  1. أنشِئ تطبيق Firebase مع نقل البيانات في بيئة JNI والنشاط:

    app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);

  2. إعداد مكتبة "الإعداد عن بُعد" كما هو موضّح:

    ::firebase::remote_config::Initialize(app);

iOS+

بعد إضافة Firebase إلى تطبيقك:

  1. إنشاء تطبيق في Firebase:

    app = ::firebase::App::Create(::firebase::AppOptions());

  2. إعداد مكتبة "الإعداد عن بُعد" كما هو موضّح:

    ::firebase::remote_config::Initialize(app);

الخطوة 3: ضبط قيم المَعلمات التلقائية داخل التطبيق

يمكنك ضبط قيم المَعلمات التلقائية داخل التطبيق في كائن "الإعداد عن بُعد" لكي يعمل تطبيقك على النحو المطلوب قبل اتصاله بالواجهة الخلفية لميزة "الإعداد عن بُعد"، ولإتاحة القيم التلقائية في حال عدم ضبط أيّ منها في الخلفية.

  1. حدِّد مجموعة من أسماء المَعلمات وقيم المَعلمات التلقائية باستخدام عنصر std::map<const char*, const char*> أو كائن std::map<const char*, firebase::Variant>.

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

  2. أضِف هذه القيم إلى عنصر "الإعداد عن بُعد" باستخدام SetDefaults().

الخطوة 4: الحصول على قيم المَعلمات لاستخدامها في تطبيقك

يمكنك الآن الحصول على قيم المَعلمات من كائن "الإعداد عن بُعد". في حال ضبط القيم في الواجهة الخلفية لميزة "الإعداد عن بُعد" واسترجاعها ثم تفعيلها، ستصبح تلك القيم متوفّرة لتطبيقك. وبخلاف ذلك، سيتم ضبط قيم المَعلمات داخل التطبيق باستخدام SetDefaults().

للحصول على هذه القيم، استدعِ الطريقة المُدرجة أدناه التي ترتبط بنوع البيانات المتوقّع من تطبيقك، مع تقديم مفتاح المَعلمة كوسيطة:

الخطوة 5: ضبط قيم المَعلمات

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

الخطوة 6: استرجاع القيم وتفعيلها

  1. لاسترجاع قيم المَعلمات من الواجهة الخلفية لميزة "الإعداد عن بُعد"، عليك استدعاء الطريقة Fetch(). يتم استرجاع أي قيم ضبطتها في الخلفية وتخزينها مؤقتًا في كائن "الإعداد عن بُعد".
  2. لإتاحة قيم المَعلمات التي تم استرجاعها لتطبيقك، يمكنك طلب ActivateFetched()

الخطوة 7: الاستماع إلى أحدث المعلومات في الوقت الفعلي

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

وتتوافق التحديثات في الوقت الفعلي مع الإصدار 11.0.0 والإصدارات الأحدث من حزمة تطوير البرامج (SDK) لمنصة Firebase C++ والإصدارات الأحدث للأنظمة الأساسية Android وApple.

  1. في تطبيقك، يمكنك طلب AddOnConfigUpdateListener لبدء الاستماع إلى التحديثات وجلب أي قيم معلمات جديدة أو محدَّثة تلقائيًا. يرصد المثال التالي التحديثات، وعند استدعاء الدالة Activate، يستخدم القيم التي تم جلبها حديثًا لعرض رسالة ترحيب معدّلة.
remote_config->AddOnConfigUpdateListener(
    [](firebase::remote_config::ConfigUpdate&& config_update,
       firebase::remote_config::RemoteConfigError remote_config_error) {
      if (remote_config_error != firebase::remote_config::kRemoteConfigErrorNone) {
        printf("Error listening for config updates: %d", remote_config_error);
      }
      // Search the `updated_keys` set for the key "welcome_message."
      // `updated_keys` represents the keys that have changed since the last
      // fetch.
      if (std::find(config_update.updated_keys.begin(),
                    config_update.updated_keys.end(),
                    "welcome_message") != config_update.updated_keys.end()) {
        remote_config->Activate().OnCompletion(
            [&](const firebase::Future& completed_future,
               void* user_data) {
              // The key "welcome_message" was found within `updated_keys` and
              // can be activated.
              if (completed_future.error() == 0) {
                DisplayWelcomeMessage();
              } else {
                printf("Error activating config: %d", completed_future.error());
              }
            },
            nullptr);
      }
    });

في المرة التالية التي تنشر فيها إصدارًا جديدًا من ميزة "الإعداد عن بُعد"، ستطلب الأجهزة التي تشغِّل تطبيقك وتستمع إلى التغييرات اسم أداة معالجة التحديثات في الإعداد.

الخطوات اللاحقة

يمكنك استكشاف حالات استخدام ميزة "الإعداد عن بُعد" والاطّلاع على بعض المفاهيم الرئيسية والاستراتيجيات المتقدّمة، بما في ذلك: