يمكنك استخدام Firebase 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 إلى تطبيقك
Android
بعد إضافة Firebase إلى تطبيقك:
أنشئ تطبيقًا على Firebase مع إدخال بيئة JNI وActivity:
app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);
اضبط مكتبة Remote Config على النحو الموضَّح:
::firebase::remote_config::Initialize(app);
iOS+
بعد إضافة Firebase إلى تطبيقك:
أنشئ تطبيقًا على Firebase:
app = ::firebase::App::Create(::firebase::AppOptions());
اضبط مكتبة Remote Config على النحو الموضَّح:
::firebase::remote_config::Initialize(app);
الخطوة 3: ضبط قيم المَعلمات التلقائية داخل التطبيق
يمكنك ضبط قيم المَعلمات التلقائية داخل التطبيق في عنصر Remote Config ، لكي يعمل تطبيقك على النحو المطلوب قبل الاتصال بواجهة برمجة التطبيقات في Remote Config، ولكي تتوفّر القيم التلقائية في حال عدم تحديد أي قيم في واجهة برمجة التطبيقات.
حدِّد مجموعة من أسماء المَعلمات وقيم المَعلمات التلقائية باستخدام عنصر
ConfigKeyValue*
أو عنصرConfigKeyValueVariant*
بحجم المصفوفة.في حال سبق لك ضبط مَعلمة Remote Config في الخلفية يمكنك تنزيل ملف يحتوي على أزواج المفتاح/القيمة هذه واستخدام لإنشاء الكائن
map
. لمزيد من المعلومات، يُرجى مراجعة تنزيل Remote Config من الإعدادات التلقائية.أضِف هذه القيم إلى الكائن Remote Config باستخدام
SetDefaults()
الخطوة 4: الحصول على قيم المَعلمات لاستخدامها في تطبيقك
يمكنك الآن الحصول على قيم المَعلمات من الكائن Remote Config. في حال ضبط
القيم في الخلفية في Remote Config واستعادتها ثم تفعيلها، ستكون
هذه القيم متاحة لتطبيقك. بخلاف ذلك، ستحصل على
قيم المَعلمات داخل التطبيق التي تم ضبطها باستخدام
SetDefaults()
.
للحصول على هذه القيم، يمكنك استدعاء الطريقة المدرَجة أدناه التي ترتبط بنوع البيانات المتوقّع من تطبيقك، مع تقديم مفتاح المَعلمة كوسيطة:
الخطوة 5: ضبط قيم المَعلمات
- في وحدة تحكّم Firebase، افتح مشروعك.
- اختَر Remote Config من القائمة لعرض لوحة بيانات Remote Config.
- حدِّد المَعلمات بالأسماء نفسها التي حدّدتها في تطبيقك. يمكنك ضبط قيمة تلقائية (ستلغي في النهاية القيمة التلقائية داخل التطبيق) وقيم مشروطة لكل مَعلمة. لمزيد من المعلومات، يُرجى مراجعة مَعلمات وشروط Remote Config
الخطوة 6: استرجاع القيم وتفعيلها
- لاسترجاع قيم المعلَمات من الواجهة الخلفية Remote Config، يمكنك طلب
Fetch()
. يتم استرجاع أي قيم قمت بتعيينها في الخلفية تم تخزينها مؤقتًا في الكائن Remote Config. - لإتاحة قيم المَعلمات التي تم استرجاعها لتطبيقك، اطلب
ActivateFetched()
الخطوة 7: الاستماع إلى آخر الأخبار في الوقت الفعلي
بعد استرجاع قيم المَعلمات، يمكنك استخدام Remote Config في الوقت الفعلي لتلقّي التعديلات من الخلفية في Remote Config. تُرسِل Remote Config إشارات في الوقت الفعلي إلى الأجهزة المتصلة عندما تتوفّر تحديثات، وتعمل على جلب التغييرات تلقائيًا بعد نشر إصدار جديد من Remote Config.
تتوفّر التحديثات في الوقت الفعلي لحِزم تطوير البرامج (SDK) Firebase C++ الإصدار 11.0.0 والإصدارات الأحدث لنظامَي التشغيل Android وApple.
- في تطبيقك، اتصل بالرقم
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، إذا لم يسبق لك إجراء ذلك. حالات الاستخدام، وإلقاء نظرة على بعض وثائق المفاهيم الرئيسية والاستراتيجيات المتقدمة، بما في ذلك: