Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Firebase'i Unity projenize ekleyin

Firebase Unity SDK'larımızla Unity oyunlarınızı güçlendirin.

Firebase'i Unity projenize bağlamanın ne kadar kolay olduğunu göstermek için GitHub , App Store ve Google Play Store'dan indirebileceğiniz örnek bir oyun olan MechaHamster'ı yaptık.

MechaHamster (GitHub)

MechaHamster (App Store)

MechaHamster (Oyun Mağazası)


Oyunlarınızı Firebase ile güçlendirmek hakkında daha fazla bilgiyi Firebase oyunları sayfamızda bulabilirsiniz .

Firebase'i Unity projenize zaten eklediniz mi? Firebase Unity SDK'nın en son sürümünü kullandığınızdan emin olun.

Önkoşullar

  • Unity 2017.4 veya sonraki bir sürümünü yükleyin. Daha önceki sürümler de uyumlu olabilir ancak aktif olarak desteklenmeyecektir.

  • (yalnızca iOS) Aşağıdakileri yükleyin:

    • Xcode 9.4.1 veya üstü
    • CocoaPods 1.10.0 veya üstü
  • Unity projenizin şu gereksinimleri karşıladığından emin olun:

    • İOS için - iOS 10 veya sonraki bir sürümü hedefler
    • Android için - API seviyesi 16 (Jelly Bean) veya üzerini hedefler
  • Uygulamanızı çalıştırmak için fiziksel bir cihaz kurun veya bir emülatör kullanın.

    • İOS için - Fiziksel bir iOS cihazı kurun veya iOS simülatörünü kullanın.

    • Android için - Emülatörler Google Play ile bir emülatör görüntüsü kullanmalıdır.

  • Google hesabınızı kullanarak Firebase'de oturum açın.

Halihazırda bir Unity projeniz yoksa ve sadece bir Firebase ürününü denemek istiyorsanız hızlı başlangıç ​​örneklerimizden birini indirebilirsiniz.

1. Adım : Firebase projesi oluşturun

Unity projenize Firebase eklemeden önce, Unity projenize bağlanmak için bir Firebase projesi oluşturmanız gerekir. Firebase projeleri hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlama bölümünü ziyaret edin.

2. Adım : Uygulamanızı Firebase'e kaydedin

Firebase projenize bağlanmak için bir veya daha fazla uygulama veya oyun kaydedebilirsiniz.

  1. Firebase konsoluna gidin .

  2. Projeye genel bakış sayfasının , kurulum iş akışını başlatmak için Unity simgesine ( ) tıklayın.

    Firebase projenize zaten bir uygulama eklediyseniz, platform seçeneklerini görüntülemek için Uygulama ekle'yi tıklayın.

  3. Unity projenizin hangi derleme hedefini kaydetmek istediğinizi seçin veya hatta şimdi aynı anda her iki hedefi de kaydetmeyi seçebilirsiniz.

  4. Unity projenizin platforma özgü kimliklerini girin.

    • İOS için - Unity projenizin iOS kimliğini iOS paket kimliği alanına girin.

    • Android için - Unity projenizin Android kimliğini Android paket adı alanına girin.
      Paket adı ve uygulama kimliği terimleri genellikle birbirinin yerine kullanılır.

  5. (İsteğe bağlı) Unity projenizin platforma özel takma adlarını girin.
    Bu takma adlar dahili, kullanışlı tanımlayıcılardır ve yalnızca Firebase konsolunda sizin tarafınızdan görülebilir.

  6. Uygulamayı kaydet'i tıklayın.

3. Adım : Firebase yapılandırma dosyalarını ekleyin

  1. Firebase konsolu kurulum iş akışında platforma özel Firebase yapılandırma dosyalarınızı edinin.

    • İOS için - GoogleService-Info.plist'i İndir'i tıklayın.

    • Android için - google-services.json indir'i tıklayın.

  2. Unity projenizin Proje penceresini açın, ardından yapılandırma dosyalarınızı Assets klasörüne taşıyın.

  3. Geri Firebase konsolunda, kurulum iş akışında, İleri'yi tıklayın.

4. Adım : Firebase Unity SDK'larını ekleyin

  1. Firebase konsolunda, Firebase Unity SDK'yı İndir'i tıklayın, ardından SDK'yı uygun bir yerde açın.

    • Firebase Unity SDK'yı istediğiniz zaman tekrar indirebilirsiniz.

    • Firebase Unity SDK, platforma özel değildir.

  2. Açık Unity projenizde, Varlıklar > Paketi İçe Aktar > Özel Paket'e gidin .

  3. Sıkıştırılmış SDK'dan, uygulamanızda kullanmak istediğiniz desteklenen Firebase ürünlerini seçin.

    Analytics etkinleştirildi

    • Google Analytics için Firebase paketini ekleyin: FirebaseAnalytics.unitypackage
    • Uygulamanızda kullanmak istediğiniz diğer Firebase ürünleri için paketleri ekleyin. Örneğin, Firebase Authentication ve Firebase Realtime Database kullanmak için:
      FirebaseAuth.unitypackage ve FirebaseDatabase.unitypackage

    Analytics etkinleştirilmedi

    Uygulamanızda kullanmak istediğiniz Firebase ürünleri için paketleri ekleyin. Örneğin, Firebase Authentication ve Firebase Realtime Database kullanmak için:
    FirebaseAuth.unitypackage ve FirebaseDatabase.unitypackage

  4. İthalat Birlik Paketi penceresinde, Al'ı tıklatın.

  5. Geri Firebase konsolunda, kurulum iş akışında, İleri'yi tıklayın.

5. Adım : Google Play hizmetleri sürüm gereksinimlerini onaylayın

Android için Firebase Unity SDK'sı, SDK'nın kullanılabilmesi için güncel olması gereken Google Play hizmetlerini gerektirir.

Uygulamanızın başlangıcına aşağıdaki kodu ekleyin. SDK'daki diğer yöntemleri çağırmadan önce Google Play hizmetlerini kontrol edebilir ve isteğe bağlı olarak Firebase Unity SDK'nın gerektirdiği sürüme güncelleyebilirsiniz.

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.
  }
});

Hazırsınız! Unity projeniz kaydedildi ve Firebase'i kullanacak şekilde yapılandırıldı.

Bilinen Sorunlar

Unity 2017.x ve sonraki sürümleri kullanırken .NET uyumluluğu

Firebase, Unity 2017 ve sonrasında deneysel bir derleme seçeneği olarak .NET 4.x'i destekler. Firebase eklentileri, .NET'in önceki sürümlerinde bazı .NET 4.x sınıflarını sağlamak için Ayrıştırma SDK'nın bileşenlerini kullanır.

Bu nedenle, Firebase Unity SDK sürüm 5.4.0 ve sonraki sürümler, dotnet3 Unity SDK'nın dotnet3 ve dotnet4 dizinlerinde .NET 3.x veya .NET 4.x ile uyumlu eklentiler sağlar.

Projenizde etkinleştirilmiş .NET sürümüyle uyumsuz olan bir Firebase eklentisini içe aktarırsanız, .NET çerçevesinde Parse SDK tarafından uygulanan bazı türlerden derleme hataları görürsünüz.

NET 3.x kullanıyorsanız, derleme hatasını çözmek için:

  1. Tüm platformlar için aşağıdaki DLL'leri kaldırın veya devre dışı bırakın:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. Tüm platformlar için aşağıdaki DLL'leri etkinleştirin:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

NET 4.x kullanıyorsanız, derleme hatasını çözmek için:

  1. Tüm platformlar için aşağıdaki DLL'leri kaldırın veya devre dışı bırakın:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. Tüm platformlar için aşağıdaki DLL'leri etkinleştirin:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

Başka bir Firebase eklentisini içe aktarırsanız:

  • Unity projenizde, projeniz için doğru DLL'leri etkinleştirmek üzere Assets > Play Services Resolver > Version Handler > Update'e gidin .

.NET 4.x projelerinde Unity 2017.1 IL2CPP derlemesi

Firebase, Unity 2017 ve sonrasında deneysel bir derleme seçeneği olarak .NET 4.x'i destekler. Firebase eklentileri, .NET'in önceki sürümlerinde bazı .NET 4.x sınıflarını sağlamak için Ayrıştırma SDK'nın bileşenlerini kullanır.

Bu nedenle, Firebase Unity SDK sürüm 5.4.0 ve sonraki sürümler, Parse türlerini (örneğin, System.Threading.Tasks.Task Parse uygulamasını) .NET çerçevesine ileten tür yönlendirme DLL'leri sağlar. Ne yazık ki, Unity 2017.1.x ile gönderilen IL2CPP (C # 'yi C ++' ya dönüştüren bir aktarıcı), tür iletme DLL'lerini doğru şekilde işlemez ve bu da aşağıdakilere benzer yapı hatalarına neden olur:

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

Unity 2017.1'de .NET 4.x IL2CPP derleme hataları için şu anda bir geçici çözüm bulunmadığından, IL2CPP ile derlenen projelerde .NET 4.x'i kullanmak için Unity 2017.2 veya sonraki bir sürüme yükseltmeniz gerekir.

Unity 2017.2 ağ iletişimi

Firebase Realtime Database, .NET ağ yığınını kullanarak TLS ağ bağlantıları oluşturur. Unity 2017.2'de .NET 4.6 kullanılırken TLS işlevselliği bozulur ve Realtime Database eklentisinin düzenleyicilerde ve masaüstünde başarısız olmasına neden olur.

Bu sorun için geçici bir çözüm bulunmadığından, Unity'nin farklı bir sürümünü, örneğin 2017.1 veya 2017.3 sürümünü kullanmanız gerekir.

Unity 2020'de Firebase Android yapılandırma dosyası eksik.

Gradle derlemesini özelleştirme becerisine sahip olmayan Unity sürümlerini desteklemek için Firebase düzenleyici aracı, bir Android kaynağı olarak Assets/Plugins/Android/Firebase/res/values/google-services.xml . Firebase SDK'nın varsayılan FirebaseApp örneğini başlatmak için kullanabilmesi için Android derlemesi.

Unity 2020'de, tüm Android kaynakları .androidlib sonekine sahip dizinlerde olmalıdır. Projeniz bir üreten bir Firebase SDK kullanıyorsa Assets/Plugins/Android/Firebase dizini için yeniden adlandırın Assets/Plugins/Android/Firebase.androidlib . AndroidManifest.xml , project.properties ve res/values/google-services.xml içerdiğinden emin olun.

Android uygulaması oluştururken tek dex ile ilgili bir sorun

Android uygulaması oluştururken, tek bir dex dosyasına sahip olmakla ilgili bir derleme hatasıyla karşılaşabilirsiniz. Projeniz Gradle derleme sistemini kullanacak şekilde yapılandırıldıysa, hata mesajı aşağıdakine benzer görünür.

Cannot fit requested classes in a single dex file.

Dalvik Yürütülebilir ( .dex ) dosyaları, Android uygulamaları için bir dizi sınıf tanımını ve bunlarla ilişkili yardımcı verileri ( .apk ) tutmak için kullanılır. Tek bir dex dosyası 65.536 yöntemle sınırlıdır. Projenizdeki tüm Android kitaplıklarındaki toplam yöntem sayısı bu sınırı aşarsa derleme başarısız olur.

Birlik tanıtıldı küçültülmesi tek dex dosyasında başvurulan yöntemlerin sayısını azaltabilir kullanılmayan kod dışında Şerit (Unity bazı sürümlerinde veya diğer araçları) ProGuard kullanan, 2017.2 yılında. Bu seçenek, Oyuncu Ayarları> Android> Yayın Ayarları> Küçült bölümünde bulunabilir. Seçenekler, Unity'nin farklı sürümlerinde farklılık gösterebilir, bu nedenle resmi Unity belgelerine bakın.

Başvurulan yöntemlerin sayısı yine de sınırı aşıyorsa, başka bir seçenek de multidex etkinleştirmektir. Unity'de bunu başarmanın birçok yolu vardır:

  • Player Settings altında Custom Gradle Template etkinleştirildiyse, mainTemplate.gradle Player Settings değiştirin.
  • Dışa aktarılan projeyi oluşturmak için Android Studio kullanıyorsanız, modül düzeyinde build.gradle dosyasını değiştirin.

Multidex kullanıcı kılavuzunda daha fazla ayrıntı bulunabilir.

Bir masaüstü iş akışı ( beta ) ayarlayın

Bir oyun oluştururken, oyununuzu önce Unity düzenleyicide ve masaüstü platformlarında test etmek, ardından geliştirmede daha sonra mobil cihazlarda dağıtmak ve test etmek genellikle çok daha kolaydır. Bu iş akışını desteklemek için Windows, macOS, Linux ve Unity düzenleyicinin içinden çalışabilen Firebase Unity SDK'larının bir alt kümesini sağlıyoruz.

  1. Mobil platformla aynı talimatları izleyerek bir masaüstü platform Unity projesi oluşturun (yukarıdaki Uygulamanızı Firebase ile kaydettirme adımıyla başlayın).

  2. Unity projenizi Unity IDE'de çalıştırın veya masaüstü için Unity projenizi oluşturmayı seçin.

  3. (İsteğe bağlı) Unity projenizi Düzenleme Modunda çalıştırın.

    Firebase Unity SDK, Unity'nin düzenleme modunda da çalıştırılabilir ve editör eklentilerinde kullanımına izin verir.

    1. Düzenleyici tarafından kullanılan bir FirebaseApp oluşturduğunuzda, varsayılan örneği kullanmayın.

    2. Bunun yerine, FirebaseApp.Create() çağrısına benzersiz bir ad verin.

      Bu, Unity IDE tarafından kullanılan örnek ile Unity projeniz tarafından kullanılan örnek arasındaki seçeneklerde bir çakışmayı önlemek için önemlidir.

Desteklenen Firebase ürünleri

Referans belgelerinden Unity Firebase kitaplıkları hakkında daha fazla bilgi edinin.

Firebase Unity SDK, iOS ve Android'de aşağıdaki Firebase ürünlerini destekler:

Firebase ürünü Birlik paketi
AdMob AdMob Unity Eklentisinde ayrı olarak dağıtılır
Analitik FirebaseAnalytics.unitypackage
Doğrulama FirebaseAuth.unitypackage
Cloud Firestore (beta) FirebaseFirestore.unitypackage
Bulut İşlevleri FirebaseFunctions.unitypackage
Bulut Mesajlaşma FirebaseMessaging.unitypackage
(önerilen) FirebaseAnalytics.unitypackage
Bulut depolama FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
(önerilen) FirebaseAnalytics.unitypackage
Dinamik Bağlantılar FirebaseDynamicLinks.unitypackage
(önerilen) FirebaseAnalytics.unitypackage
Gerçek Zamanlı Veritabanı FirebaseDatabase.unitypackage
Uzaktan Yapılandırma FirebaseRemoteConfig.unitypackage
(önerilen) FirebaseAnalytics.unitypackage

Desteklenen Firebase ürünleri (masaüstü)

Firebase Unity SDK, bir ürün alt kümesi için masaüstü iş akışı desteği içerir ve Firebase'in belirli bölümlerinin Unity düzenleyicide ve Windows, macOS ve Linux'ta bağımsız masaüstü yapılarında kullanılmasını sağlar.

Firebase ürünü (masaüstü) Birlik paketi
Doğrulama FirebaseAuth.unitypackage
Bulut İşlevleri FirebaseFunctions.unitypackage
Cloud Firestore FirebaseFirestore.unitypackage
Bulut depolama FirebaseStorage.unitypackage
Gerçek Zamanlı Veritabanı FirebaseDatabase.unitypackage
Uzaktan Yapılandırma FirebaseRemoteConfig.unitypackage

Firebase, Windows, macOS ve Linux için derleme yaparken kolaylık sağlamak için kalan masaüstü kitaplıklarını saplama (işlevsel olmayan) uygulamalar olarak sağlar. Bu nedenle, masaüstünü hedeflemek için kodu koşullu olarak derlemenize gerek yoktur.

Sonraki adımlar