ابدأ مع Firebase Remote Config

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

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

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

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

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

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

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

    • إذا لم يكن لديك مشروع Unity ، فيمكنك تنزيل نموذج للتطبيق .

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

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

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

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

للقيام بذلك ، قم بإنشاء قاموس سلسلة ، وقم بتعبئته بأزواج المفاتيح / القيمة التي تمثل الإعدادات الافتراضية التي تريد إضافتها. إذا كنت قد قمت بالفعل بتكوين قيم معلمات الواجهة الخلفية لـ 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. حدد Remote Config من القائمة لعرض لوحة معلومات Remote Config.
  3. حدد المعلمات بنفس الأسماء مثل المعلمات التي حددتها في تطبيقك. لكل معلمة ، يمكنك تعيين قيمة افتراضية (والتي ستتجاوز في النهاية القيمة الافتراضية داخل التطبيق) والقيم الشرطية. لمعرفة المزيد ، راجع معلمات وشروط التكوين عن بُعد .

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

لجلب قيم المعلمات من الواجهة الخلفية لـ Remote Config ، قم باستدعاء الأسلوب 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 على "صحيح".

Next steps

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: