ابدأ باستخدام Firebase Remote Config


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

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

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

قبل أن تتمكن من استخدام "التكوين عن بعد" ، تحتاج إلى:

  • قم بتسجيل مشروع C++ الخاص بك وقم بتكوينه لاستخدام Firebase.

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

  • أضف Firebase C++ SDK إلى مشروع C++ الخاص بك.

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

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

ذكري المظهر

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

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

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

  2. قم بتهيئة مكتبة التكوين عن بعد، كما هو موضح:

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

دائرة الرقابة الداخلية +

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

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

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

  2. قم بتهيئة مكتبة التكوين عن بعد، كما هو موضح:

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

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

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

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

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

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

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

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

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

الخطوة 5: قم بتوصيل تطبيقك في وحدة تحكم Firebase

في وحدة تحكم Firebase ، أضف تطبيقك إلى مشروع Firebase الخاص بك.

الخطوة 6: تعيين قيم المعلمات

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

الخطوة 7: جلب القيم وتنشيطها

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

الخطوة 8: استمع للحصول على التحديثات في الوقت الحقيقي

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

يتم دعم التحديثات في الوقت الفعلي بواسطة Firebase C ++ SDK V11.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);
      }
    });

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

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

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