يمكنك استخدام 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 إلى تطبيقك:
قم بإنشاء تطبيق Firebase ، وتمريره في بيئة ونشاط JNI:
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 ، وبذلك تكون القيم الافتراضية متاحة إذا لم يتم تعيين أي منها على الواجهة الخلفية.
حدد مجموعة من أسماء المعلمات ، وقيم المعلمات الافتراضية باستخدام كائن
std::map<const char*, const char*>
أو كائنstd::map<const char*, firebase::Variant>
كائن.- تعرف على معلومات حول
firebase::Variant
.
إذا كنت قد قمت بالفعل بتكوين قيم معلمات الواجهة الخلفية لـ Remote Config ، فيمكنك تنزيل ملف يحتوي على أزواج المفاتيح / القيم هذه واستخدامها لإنشاء كائن
map
. لمزيد من المعلومات ، راجع تنزيل الإعدادات الافتراضية لقالب Remote Config .- تعرف على معلومات حول
أضف هذه القيم إلى كائن Remote Config باستخدام
SetDefaults()
.
الخطوة 4: احصل على قيم المعلمات لاستخدامها في تطبيقك
يمكنك الآن الحصول على قيم المعلمات من كائن Remote Config. إذا قمت بتعيين القيم في الواجهة الخلفية لـ Remote Config ، وجلبتها ، ثم قمت بتنشيطها ، فستتوفر هذه القيم لتطبيقك. خلاف ذلك ، يمكنك الحصول على قيم المعلمات داخل التطبيق التي تم تكوينها باستخدام SetDefaults()
.
للحصول على هذه القيم ، اتصل بالطريقة المدرجة أدناه التي تعين نوع البيانات الذي يتوقعه تطبيقك ، مع توفير مفتاح المعلمة كوسيطة:
الخطوة 5: قم بتوصيل تطبيقك بوحدة تحكم Firebase
في وحدة تحكم Firebase ، أضف تطبيقك إلى مشروع Firebase.
الخطوة 6: تعيين قيم المعلمات
- في وحدة تحكم Firebase ، افتح مشروعك.
- حدد Remote Config من القائمة لعرض لوحة معلومات Remote Config.
- حدد المعلمات بنفس الأسماء مثل المعلمات التي حددتها في تطبيقك. لكل معلمة ، يمكنك تعيين قيمة افتراضية (والتي ستتجاوز في النهاية القيمة الافتراضية داخل التطبيق) والقيم الشرطية. لمعرفة المزيد ، راجع معلمات وشروط التكوين عن بُعد .
الخطوة 7: جلب القيم وتنشيطها
- لجلب قيم المعلمات من الواجهة الخلفية لـ Remote Config ، قم باستدعاء طريقة
Fetch()
. يتم جلب أي قيم تقوم بتعيينها على الواجهة الخلفية وتخزينها مؤقتًا في كائن Remote Config. - لإتاحة قيم المعلمات التي تم جلبها لتطبيقك ، اتصل بـ
ActivateFetched()
الخطوة 8: استمع إلى التحديثات في الوقت الفعلي
بعد إحضار قيم المعلمات ، يمكنك استخدام Remote Config في الوقت الفعلي للاستماع إلى التحديثات من الواجهة الخلفية لـ Remote Config. يقوم Real-time Remote Config بإشارات إلى الأجهزة المتصلة عندما تكون التحديثات متاحة ويقوم تلقائيًا بجلب التغييرات بعد نشر إصدار Remote Config جديد.
يتم دعم التحديثات في الوقت الفعلي بواسطة Firebase C ++ SDK v11.0.0 + والإصدارات الأحدث لمنصات Android و Apple.
- In your app, call
AddOnConfigUpdateListener
to start listening for updates and automatically fetch any new or updated parameter values. The following example listens for updates and, whenActivate
is called, uses the newly fetched values to display an updated welcome message.
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); } });
The next time you publish a new version of your Remote Config, devices that are running your app and listening for changes will call the config update listener.
الخطوات التالية
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: