Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

ابدأ مع Firebase Remote Config for Unity

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

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

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

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

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

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

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

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

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

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

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

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

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

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.SetDefaults(defaults);

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

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

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

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

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

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

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

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

لجلب قيم المعلمات من الواجهة الخلفية FetchAsync() البعيد ، اتصل 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.FetchAsync(
      TimeSpan.Zero);
  return fetchTask.ContinueWithOnMainThread(FetchComplete);
}

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

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

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

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

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