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

أضف Firebase إلى مشروع الوحدة الخاص بك

عزز ألعاب Unity الخاصة بك باستخدام مجموعات Firebase Unity SDK.

لإظهار مدى سهولة توصيل Firebase بمشروع Unity الخاص بك ، صممنا لعبة نموذجية ، MechaHamster ، يمكنك تنزيلها من GitHub ومتجر التطبيقات ومتجر Google Play .

MechaHamster (جيثب)

MechaHamster (متجر التطبيقات)

MechaHamster (متجر Play)


تعرف على مزيد من المعلومات حول تشغيل ألعابك باستخدام Firebase في صفحة ألعاب Firebase .

هل سبق لك إضافة Firebase إلى مشروع Unity الخاص بك؟ تأكد من أنك تستخدم أحدث إصدار من Firebase Unity SDK .

المتطلبات الأساسية

  • قم بتثبيت Unity 2017.4 أو أحدث. قد تكون الإصدارات السابقة متوافقة أيضًا ولكن لن يتم دعمها بشكل فعال.

  • (iOS فقط) قم بتثبيت ما يلي:

    • Xcode 9.4.1 أو أحدث
    • CocoaPods 1.10.0 أو أحدث
  • تأكد من أن مشروع الوحدة الخاص بك يلبي هذه المتطلبات:

    • لنظام iOS - يستهدف iOS 10 أو أحدث
    • لأجهزة Android - تستهدف مستوى API 16 (Jelly Bean) أو ما بعده
  • قم بإعداد جهاز مادي أو استخدام محاكي لتشغيل تطبيقك.

    • لنظام iOS - قم بإعداد جهاز iOS فعلي أو استخدم محاكي iOS.

    • لالروبوت - المحاكيات يجب استخدام صورة المحاكي مع جوجل اللعب.

إذا لم يكن لديك بالفعل مشروع Unity وترغب فقط في تجربة أحد منتجات Firebase ، فيمكنك تنزيل إحدى عينات البدء السريع الخاصة بنا.

الخطوة 1 : أنشئ مشروع Firebase

قبل أن تتمكن من إضافة Firebase إلى مشروع Unity الخاص بك ، تحتاج إلى إنشاء مشروع Firebase للاتصال بمشروع الوحدة الخاص بك. تفضل بزيارة فهم مشاريع Firebase لمعرفة المزيد حول مشاريع Firebase.

الخطوة 2 : تسجيل تطبيقك في Firebase

يمكنك تسجيل تطبيق أو لعبة واحدة أو أكثر للتواصل مع مشروع Firebase.

  1. انتقل إلى وحدة تحكم Firebase .

  2. في وسط صفحة نظرة عامة على المشروع ، انقر فوق أيقونة الوحدة ( ) لبدء سير عمل الإعداد.

    إذا كنت قد أضفت بالفعل تطبيقًا إلى مشروع Firebase ، فانقر فوق إضافة تطبيق لعرض خيارات النظام الأساسي.

  3. حدد أي هدف بناء لمشروع الوحدة الخاص بك الذي ترغب في تسجيله ، أو يمكنك حتى تحديد تسجيل كلا الهدفين الآن في نفس الوقت.

  4. أدخل المعرف (المعرفات) الخاص بالنظام الأساسي لمشروع الوحدة الخاص بك.

    • لنظام iOS - أدخل معرف iOS لمشروع Unity الخاص بك في حقل معرف حزمة iOS .

    • لنظام Android - أدخل معرف Android الخاص بمشروع Unity في حقل اسم حزمة Android .
      غالبًا ما يتم استخدام المصطلحين اسم الحزمة ومعرف التطبيق بالتبادل.

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

  6. انقر فوق تسجيل التطبيق .

الخطوة 3 : أضف ملفات تهيئة Firebase

  1. احصل على ملف (ملفات) تكوين Firebase الخاص بالنظام الأساسي في سير عمل إعداد وحدة تحكم Firebase.

    • لنظام iOS - انقر فوق تنزيل GoogleService-Info.plist .

    • لنظام التشغيل Android - انقر فوق تنزيل google-services.json .

  2. افتح نافذة المشروع في مشروع الوحدة الخاص بك ، ثم انقل ملف (ملفات) التكوين إلى مجلد Assets .

  3. مرة أخرى في وحدة تحكم Firebase ، في سير عمل الإعداد ، انقر فوق " التالي" .

الخطوة 4 : أضف حزم Firebase Unity SDK

  1. في وحدة تحكم Firebase ، انقر على تنزيل Firebase Unity SDK ، ثم قم بفك ضغط SDK في مكان مناسب.

    • يمكنك تنزيل Firebase Unity SDK مرة أخرى في أي وقت.

    • إن حزمة Firebase Unity SDK ليست خاصة بالنظام الأساسي.

  2. في مشروع Unity المفتوح ، انتقل إلى Assets > Import Package > Custom Package .

  3. من حزمة SDK غير المضغوطة ، حدد منتجات Firebase المدعومة التي تريد استخدامها في تطبيقك.

    تم تمكين التحليلات

    • أضف حزمة Firebase لبرنامج Google Analytics: FirebaseAnalytics.unitypackage
    • أضف الحزم لأي من منتجات Firebase الأخرى التي تريد استخدامها في تطبيقك. على سبيل المثال ، لاستخدام مصادقة Firebase وقاعدة بيانات Firebase Realtime:
      FirebaseAuth.unitypackage و FirebaseDatabase.unitypackage

    لم يتم تمكين التحليلات

    أضف حزم منتجات Firebase التي تريد استخدامها في تطبيقك. على سبيل المثال ، لاستخدام مصادقة Firebase وقاعدة بيانات Firebase Realtime:
    FirebaseAuth.unitypackage و FirebaseDatabase.unitypackage

  4. في نافذة استيراد حزمة الوحدة ، انقر فوق استيراد .

  5. مرة أخرى في وحدة تحكم Firebase ، في سير عمل الإعداد ، انقر فوق " التالي" .

الخطوة 5 : تأكيد متطلبات إصدار خدمات Google Play

تتطلب حزمة Firebase Unity SDK لنظام Android خدمات Google Play ، والتي يجب أن تكون محدثة قبل التمكن من استخدام SDK.

أضف الكود التالي في بداية التطبيق الخاص بك. يمكنك التحقق من خدمات Google Play وتحديثها اختياريًا إلى الإصدار المطلوب بواسطة Firebase Unity SDK قبل استدعاء أي طرق أخرى في SDK.

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Create and hold a reference to your FirebaseApp,
    // where app is a Firebase.FirebaseApp property of your application class.
       app = Firebase.FirebaseApp.DefaultInstance;

    // Set a flag here to indicate whether Firebase is ready to use by your app.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

أنت جاهز تمامًا! تم تسجيل مشروع الوحدة الخاص بك وتهيئته لاستخدام Firebase.

مشاكل معروفة

توافق .NET عند استخدام Unity 2017.x والإصدارات الأحدث

يدعم Firebase .NET 4.x كخيار بناء تجريبي في Unity 2017 والإصدارات الأحدث. تستخدم مكونات Firebase الإضافية مكونات Parse SDK لتوفير بعض فئات .NET 4.x في الإصدارات السابقة من .NET.

لذلك ، يوفر الإصدار 5.4.0 Firebase Unity SDK والإصدارات الأحدث مكونات إضافية متوافقة مع .NET 3.x أو .NET 4.x في dotnet3 و dotnet4 من dotnet4 Unity SDK.

إذا قمت باستيراد مكون إضافي لـ Firebase غير متوافق مع إصدار .NET الذي تم تمكينه في مشروعك ، فسترى أخطاء تجميع من بعض الأنواع في .NET framework التي يتم تنفيذها بواسطة Parse SDK.

لحل خطأ الترجمة ، إذا كنت تستخدم .NET 3.x:

  1. قم بإزالة أو تعطيل مكتبات DLL التالية لجميع الأنظمة الأساسية:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. قم بتمكين مكتبات DLL التالية لجميع الأنظمة الأساسية:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

لحل خطأ الترجمة ، إذا كنت تستخدم .NET 4.x:

  1. قم بإزالة أو تعطيل مكتبات DLL التالية لجميع الأنظمة الأساسية:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. قم بتمكين مكتبات DLL التالية لجميع الأنظمة الأساسية:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

إذا قمت باستيراد مكوّن إضافي Firebase آخر:

  • في مشروع Unity الخاص بك ، انتقل إلى Assets > Play Services Resolver > Version Handler > Update لتمكين مكتبات DLL الصحيحة لمشروعك.

Unity 2017.1 تجميع IL2CPP في مشاريع .NET 4.x.

يدعم Firebase .NET 4.x كخيار بناء تجريبي في Unity 2017 والإصدارات الأحدث. تستخدم مكونات Firebase الإضافية مكونات Parse SDK لتوفير بعض فئات .NET 4.x في الإصدارات السابقة من .NET.

لذلك ، يوفر الإصدار 5.4.0 من Firebase Unity SDK والإصدارات الأحدث إعادة توجيه نوع مكتبات DLL التي تعيد توجيه أنواع التحليل (على سبيل المثال ، تطبيق تحليل System.Threading.Tasks.Task ) إلى إطار عمل .NET. لسوء الحظ ، لا يقوم IL2CPP (مترجم يقوم بتحويل C # إلى C ++) الذي يتم شحنه في Unity 2017.1.x بمعالجة إعادة توجيه نوع DLL بشكل صحيح مما ينتج عنه أخطاء إنشاء مشابهة لما يلي:

Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>

لا يوجد حاليًا حل بديل متاح لأخطاء إنشاء .NET 4.x IL2CPP في Unity 2017.1 ، لذلك يجب الترقية إلى Unity 2017.2 أو ما بعده لاستخدام .NET 4.x في المشروعات المترجمة باستخدام IL2CPP.

Unity 2017.2 الشبكات

تنشئ قاعدة بيانات Firebase Realtime اتصالات شبكة TLS باستخدام مكدس الشبكات .NET. تتعطل وظيفة TLS في Unity 2017.2 عند استخدام .NET 4.6 مما تسبب في فشل المكون الإضافي لقاعدة بيانات Realtime في المحررين وعلى سطح المكتب.

لا يوجد حل بديل لهذه المشكلة ، لذلك يجب عليك استخدام إصدار مختلف من Unity ، على سبيل المثال الإصدار 2017.1 أو 2017.3.

ملف تهيئة Firebase Android مفقود في Unity 2020.

من أجل دعم إصدارات Unity التي لا تملك القدرة على تخصيص بنية Gradle ، تنشئ أداة محرر Firebase Assets/Plugins/Android/Firebase/res/values/google-services.xml كمورد Android ليتم تعبئتها في ملف إصدار Android ، بحيث يمكن لـ Firebase SDK استخدامه لتهيئة مثيل FirebaseApp الافتراضي.

في Unity 2020 ، يجب أن تكون جميع موارد Android في أدلة مع لاحقة .androidlib . إذا كان مشروعك يستخدم Firebase SDK الذي ينشئ دليل Assets/Plugins/Android/Firebase ، Assets/Plugins/Android/Firebase تسميته إلى Assets/Plugins/Android/Firebase.androidlib . تأكد من أنه يحتوي على AndroidManifest.xml و project.properties و res/values/google-services.xml .

مشكلة في dex واحد أثناء إنشاء تطبيق Android

أثناء إنشاء تطبيق Android ، قد تواجه إخفاقًا في الإنشاء يتعلق بامتلاك ملف dex واحد. تبدو رسالة الخطأ مشابهة لما يلي ، إذا تم تكوين مشروعك لاستخدام نظام إنشاء Gradle.

Cannot fit requested classes in a single dex file.

تستخدم ملفات Dalvik Executable ( .dex ) للاحتفاظ بمجموعة من تعريفات .apk والبيانات المساعدة المرتبطة بها لتطبيقات Android ( .apk ). يقتصر ملف dex الفردي على الإشارة إلى 65.536 طريقة. سيفشل الإصدار إذا تجاوز العدد الإجمالي للطرق من جميع مكتبات Android في مشروعك هذا الحد.

قدم Unity Minification في 2017.2 ، والذي يستخدم Proguard (أو أدوات أخرى في بعض إصدارات Unity) لإزالة التعليمات البرمجية غير المستخدمة ، والتي يمكن أن تقلل العدد الإجمالي للطرق المشار إليها في ملف dex واحد. يمكن العثور على الخيار في إعدادات المشغل> Android> إعدادات النشر> تصغير . قد تختلف الخيارات في إصدار مختلف من Unity ، لذا يرجى الرجوع إلى وثائق الوحدة الرسمية.

إذا كان عدد الطرق المشار إليها لا يزال يتجاوز الحد ، هناك خيار آخر وهو تمكين multidex . هناك طرق متعددة لتحقيق ذلك في الوحدة:

  • إذا تم Custom Gradle Template ضمن Player Settings ، mainTemplate.gradle بتعديل mainTemplate.gradle .
  • إذا كنت تستخدم Android Studio لإنشاء المشروع الذي تم تصديره ، build.gradle ملف build.gradle مستوى الوحدة النمطية.

يمكن العثور على مزيد من التفاصيل في دليل مستخدم multidex .

إعداد سير عمل سطح المكتب ( تجريبي )

عند إنشاء لعبة ، غالبًا ما يكون من الأسهل كثيرًا اختبار لعبتك في محرر Unity وعلى منصات سطح المكتب أولاً ، ثم نشرها واختبارها على الأجهزة المحمولة لاحقًا في مرحلة التطوير. لدعم سير العمل هذا ، نقدم مجموعة فرعية من Firebase Unity SDKs والتي يمكن تشغيلها على أنظمة تشغيل Windows و macOS و Linux ومن داخل محرر Unity.

  1. قم بإعداد مشروع Unity الخاص بالنظام الأساسي لسطح المكتب باتباع نفس التعليمات الخاصة بمنصة الأجهزة المحمولة (ابدأ بخطوة تسجيل تطبيقك باستخدام Firebase أعلاه).

  2. قم بتشغيل مشروع Unity الخاص بك في Unity IDE أو حدد إنشاء مشروع Unity الخاص بك لسطح المكتب .

  3. (اختياري) قم بتشغيل مشروع الوحدة في وضع التحرير.

    يمكن أيضًا تشغيل Firebase Unity SDK في وضع تحرير Unity ، مما يسمح باستخدامه في مكونات المحرر الإضافية.

    1. عندما تنشئ FirebaseApp يستخدمه المحرر ، لا تستخدم النسخة الافتراضية.

    2. بدلاً من ذلك ، قم بتوفير اسم فريد لاستدعاء FirebaseApp.Create() .

      هذا مهم لتجنب التعارض في الخيارات بين المثيل المستخدم بواسطة Unity IDE والمثيل الذي يستخدمه مشروع Unity الخاص بك.

منتجات Firebase المدعومة

تعرف على المزيد حول مكتبات Unity Firebase في الوثائق المرجعية .

تدعم حزمة Firebase Unity SDK منتجات Firebase التالية على نظامي التشغيل iOS و Android :

منتج Firebase حزمة الوحدة
AdMob يتم توزيعها بشكل منفصل في AdMob Unity Plugin
تحليلات FirebaseAnalytics.unitypackage
المصادقة FirebaseAuth.unitypackage
Cloud Firestore (تجريبي) FirebaseFirestore.unitypackage
وظائف السحابة FirebaseFunctions.unitypackage
المراسلة السحابية FirebaseMessaging.unitypackage
(موصى به) FirebaseAnalytics.unitypackage
سحابة التخزين FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
(موصى به) FirebaseAnalytics.unitypackage
روابط ديناميكية FirebaseDynamicLinks.unitypackage
(موصى به) FirebaseAnalytics.unitypackage
قاعدة بيانات الوقت الحقيقي FirebaseDatabase.unitypackage
التكوين عن بعد FirebaseRemoteConfig.unitypackage
(موصى به) FirebaseAnalytics.unitypackage

منتجات Firebase المدعومة (سطح المكتب)

تتضمن حزمة Firebase Unity SDK دعمًا لسير عمل سطح المكتب لمجموعة فرعية من المنتجات ، مما يتيح استخدام أجزاء معينة من Firebase في محرر Unity وفي تصميمات سطح المكتب المستقلة على أنظمة التشغيل Windows و macOS و Linux.

منتج Firebase (سطح المكتب) حزمة الوحدة
المصادقة FirebaseAuth.unitypackage
وظائف السحابة FirebaseFunctions.unitypackage
سحابة Firestore FirebaseFirestore.unitypackage
سحابة التخزين FirebaseStorage.unitypackage
قاعدة بيانات الوقت الحقيقي FirebaseDatabase.unitypackage
التكوين عن بعد FirebaseRemoteConfig.unitypackage

يوفر Firebase مكتبات سطح المكتب المتبقية كتطبيقات روتينية (غير وظيفية) للراحة عند الإنشاء لأنظمة Windows و macOS و Linux. لذلك ، لا تحتاج إلى ترجمة التعليمات البرمجية بشكل مشروط لاستهداف سطح المكتب.

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