Catch up on highlights from Firebase at Google I/O 2023. Learn more

ابدأ مع Firebase Remote Config


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

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

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

قبل أن تتمكن من استخدام Remote Config ، تحتاج إلى:

  • قم بتسجيل مشروع 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. قم بتهيئة مكتبة 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: قم بتوصيل تطبيقك بوحدة تحكم Firebase

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

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

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

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

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

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

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

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

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

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

If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: