ابدأ مع Firebase Remote Config

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

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

هذا دليل يرشدك خلال خطوات لتبدأ، ويقدم بعض نموذج التعليمات البرمجية، وكلها متاحة للاستنساخ أو تحميل من firebase / التشغيل السريع للوحدة جيثب مستودع.

أضف Remote Config إلى تطبيقك

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

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

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

    • إذا لم يكن لديك مشروع الوحدة، يمكنك تحميل التطبيق عينة .

  • إضافة Firebase الوحدة SDK (على وجه التحديد، FirebaseRemoteConfig.unitypackage ) لمشروع الوحدة الخاصة بك.

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

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

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

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

System.Collections.Generic.Dictionary<string, object> defaults =
  new System.Collections.Generic.Dictionary<string, object>();

// These are the values that are used if we haven't fetched data from the
// server
// yet, or if we ask for values that the server doesn't have:
defaults.Add("config_test_string", "default local string");
defaults.Add("config_test_int", 1);
defaults.Add("config_test_float", 1.0);
defaults.Add("config_test_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.SetDefaultsAsync(defaults)
  .ContinueWithOnMainThread(task => {

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

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

للحصول على هذه القيم، استخدم GetValue() ، وتوفير مفتاح المعلمة كحجة. هذا ما يعيد ConfigValue ، الذي له خصائص لتحويل القيمة إلى أنواع قاعدة مختلفة.

اربط تطبيقك بوحدة تحكم Firebase

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

تعيين قيم المعلمات

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

إحضار القيم وتنشيطها (حسب الحاجة)

لجلب قيم المعلمات من الواجهة الخلفية التكوين عن بعد، استدعاء FetchAsync() الأسلوب. يتم جلب أي قيم تقوم بتعيينها على الواجهة الخلفية وتخزينها مؤقتًا في كائن Remote Config.

// Start a fetch request.
// FetchAsync only fetches new data if the current data is older than the provided
// timespan.  Otherwise it assumes the data is "recent enough", and does nothing.
// By default the timespan is 12 hours, and for production apps, this is a good
// number. For this example though, it's set to a timespan of zero, so that
// changes in the console will always show up immediately.
public Task FetchDataAsync() {
  DebugLog("Fetching data...");
  System.Threading.Tasks.Task fetchTask =
  Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.FetchAsync(
      TimeSpan.Zero);
  return fetchTask.ContinueWithOnMainThread(FetchComplete);
}

تم جلب القيم عبر FetchAsync() يتم تخزينها مؤقتا محليا عندما جلب يكمل، ولكن لا يتم توفيرها حتى ActivateFetched() يتم استدعاء. منذ FetchAsync() ينفذ بشكل غير متزامن، وهذا يتيح لك للتأكد من أن القيم الجديدة لا يتم تطبيق منتصف الحساب، أو في أوقات أخرى قد يسبب مشاكل أو سلوك غريب.

(اختياري) قم بتمكين وضع المطور

لتمكين وضع المطور، والتي يمكن استخدامها لتعطيل اختناق أثناء التطور، يمكنك استخدام FirebaseRemoteConfig.Setting الملكية، ووضع جديد ConfigSettings مع IsDeveloperMode مجموعة إلى true.

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

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