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


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

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

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

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

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

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

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

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

الخطوة 2: إضافة Remote Config إلى تطبيقك

Android

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

  1. إنشاء تطبيق Firebase، مع تمرير بيئة JNI والنشاط:

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

  2. إعداد مكتبة Remote Config، كما هو موضّح:

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

iOS+

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

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

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

  2. إعداد مكتبة Remote Config، كما هو موضّح:

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

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

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

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

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

  2. أضِف هذه القيم إلى الكائن Remote Config باستخدام SetDefaults()

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

يمكنك الآن الحصول على قيم المَعلمات من الكائن Remote Config. في حال ضبط في الواجهة الخلفية لـ Remote Config، وجلبوها، ثم فعّلوا هذه القيم، القيم المتاحة لتطبيقك. بخلاف ذلك، ستظهر لك المَعلمة داخل التطبيق. القيم المهيأة باستخدام SetDefaults()

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

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

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

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

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

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

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

توفّر حزمة تطوير البرامج (SDK) Firebase C++ التحديثات في الوقت الفعلي الإصدار 11.0.0 أو الإصدارات الأحدث أو الإصدارات الأحدث منه لنظامَي التشغيل 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);
      }
    });

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

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

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