Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Menambahkan Firebase ke project Unity

Tingkatkan game Unity Anda dengan Firebase Unity SDK.

Untuk menunjukkan betapa mudahnya memasang Firebase ke dalam project Unity, kami membuat contoh game, MechaHamster, yang dapat didownload dari GitHub, App Store, dan Google Play Store.

MechaHamster (GitHub)

MechaHamster (App Store)

MechaHamster (Play Store)


Cari tahu informasi lebih lanjut tentang cara menyempurnakan game Anda dengan Firebase di halaman game Firebase kami.

Sudah menambahkan Firebase ke project Unity Anda? Pastikan Anda menggunakan Firebase Unity SDK versi terbaru.

Prasyarat

  • Instal Unity 2017.4 atau yang lebih baru. Versi sebelumnya mungkin juga kompatibel, tetapi tidak akan didukung secara aktif.

  • (khusus iOS) Instal aplikasi berikut:

    • Xcode 9.4.1 atau yang lebih baru
    • CocoaPods 1.9.0 atau yang lebih baru
  • Pastikan project Unity Anda memenuhi persyaratan berikut:

    • Untuk iOS — menargetkan iOS 10 atau yang lebih baru
    • Untuk Android — menargetkan API level 16 (Jelly Bean) atau yang lebih baru
  • Siapkan perangkat fisik atau gunakan emulator untuk menjalankan aplikasi Anda.

    • Untuk iOS — Siapkan perangkat iOS fisik atau gunakan simulator iOS.

    • Untuk AndroidEmulator harus menggunakan image emulator dengan Google Play.

Jika Anda belum memiliki project Unity dan hanya ingin mencoba produk Firebase, Anda dapat mendownload salah satu contoh panduan memulai.

Langkah 1: Buat project Firebase

Agar dapat menambahkan Firebase ke project Unity, Anda perlu membuat project Firebase untuk terhubung ke project Unity. Buka bagian Memahami Project Firebase untuk mempelajari lebih lanjut project Firebase.

Langkah 2: Daftarkan aplikasi Anda ke Firebase

Anda dapat mendaftarkan satu atau beberapa aplikasi atau game untuk dihubungkan dengan project Firebase Anda.

  1. Buka Firebase console.

  2. Di bagian tengah halaman ringkasan project, klik ikon Unity () untuk meluncurkan alur kerja penyiapan.

    Jika Anda sudah menambahkan aplikasi ke project Firebase, klik Tambahkan aplikasi untuk menampilkan opsi platform.

  3. Pilih target build project Unity yang ingin Anda daftarkan, atau Anda bahkan dapat memilih untuk mendaftarkan kedua target sekaligus.

  4. Masukkan ID khusus platform project Unity Anda.

    • Untuk iOS — Masukkan ID iOS project Unity Anda di kolom ID paket iOS.

    • Untuk Android — Masukkan ID Android project Unity Anda di kolom nama paket Android.
      Istilah nama paket dan ID aplikasisering kali digunakan secara bergantian.

  5. (Opsional) Masukkan nama panggilan khusus platform project Unity Anda.
    Nama panggilan ini adalah ID internal untuk memudahkan dan hanya terlihat oleh Anda di Firebase console.

  6. Klik Daftarkan aplikasi.

Langkah 3: Tambahkan file konfigurasi Firebase

  1. Dapatkan file konfigurasi Firebase khusus platform Anda di alur kerja penyiapan Firebase console.

    • Untuk iOS — Klik Download GoogleService-Info.plist.

    • Untuk Android — Klik Download google-services.json.

  2. Buka jendela Project dari project Unity Anda, lalu pindahkan file konfigurasi Anda ke dalam folder Assets.

  3. Kembali ke Firebase console, di alur kerja penyiapan, klik Berikutnya.

Langkah 4: Tambahkan Firebase Unity SDK

  1. Di Firebase console, klik Download Firebase Unity SDK, lalu ekstrak SDK di tempat yang mudah diakses.

    • Anda dapat mendownload Firebase Unity SDK lagi kapan saja.

    • Firebase Unity SDK tidak khusus platform.

  2. Pada project Unity yang terbuka, buka Aset > Impor Paket > Paket Kustom.

  3. Dari SDK yang telah dibuka kompresinya, pilih produk Firebase yang didukung yang ingin digunakan dalam aplikasi Anda.

    Analytics diaktifkan

    • Tambahkan paket Firebase untuk Google Analytics: FirebaseAnalytics.unitypackage
    • Tambahkan paket untuk produk Firebase lainnya yang ingin digunakan di aplikasi Anda. Misalnya, untuk menggunakan Firebase Authentication dan Firebase Realtime Database:
      FirebaseAuth.unitypackage dan FirebaseDatabase.unitypackage

    Analytics tidak diaktifkan

    Tambahkan paket untuk produk Firebase yang ingin digunakan di aplikasi Anda. Misalnya, untuk menggunakan Firebase Authentication dan Firebase Realtime Database:
    FirebaseAuth.unitypackage dan FirebaseDatabase.unitypackage

  4. Di jendela Import Unity Package, klik Import.

  5. Kembali ke Firebase console, di alur kerja penyiapan, klik Berikutnya.

Langkah 5: Konfirmasikan persyaratan versi layanan Google Play

Firebase Unity SDK di Android memerlukan layanan Google Play versi terbaru sebelum SDK dapat digunakan.

Tambahkan kode berikut di awal aplikasi Anda. Anda dapat memeriksa dan mengupdate layanan Google Play secara opsional ke versi yang diperlukan oleh Firebase Unity SDK sebelum memanggil metode lain di 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.
  }
});

Anda sudah siap! Project Unity Anda sudah terdaftar dan dikonfigurasi untuk menggunakan Firebase.

Masalah umum

Kompatibilitas .NET saat menggunakan Unity 2017.x dan yang lebih baru

Firebase mendukung .NET 4.x sebagai opsi build eksperimental pada Unity 2017 dan yang lebih baru. Plugin Firebase menggunakan komponen Parse SDK untuk menyediakan beberapa class .NET 4.x pada .NET versi sebelumnya.

Oleh sebab itu, Firebase Unity SDK versi 5.4.0 dan yang lebih baru menyediakan plugin yang kompatibel dengan .NET 3.x atau .NET 4.x dalam direktori dotnet3 serta dotnet4 dari Firebase Unity SDK.

Jika Anda mengimpor plugin Firebase yang tidak kompatibel dengan versi .NET yang diaktifkan di project Anda, Anda akan menemukan error kompilasi dari beberapa jenis di framework .NET yang diimplementasikan oleh Parse SDK.

Untuk mengatasi error kompilasi, jika Anda menggunakan .NET 3.x:

  1. Hapus atau nonaktifkan DLL berikut untuk semua platform:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. Aktifkan DLL berikut untuk semua platform:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

Untuk mengatasi error kompilasi, jika Anda menggunakan .NET 4.x:

  1. Hapus atau nonaktifkan DLL berikut untuk semua platform:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. Aktifkan DLL berikut untuk semua platform:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

Jika Anda mengimpor plugin Firebase lain:

  • Di project Unity Anda, arahkan ke Assets > Play Services Resolver > Version Handler > Update untuk mengaktifkan DLL yang benar untuk project Anda.

Kompilasi Unity 2017.1 IL2CPP di Project .NET 4.x

Firebase mendukung .NET 4.x sebagai opsi build eksperimental pada Unity 2017 dan yang lebih baru. Plugin Firebase menggunakan komponen Parse SDK untuk menyediakan beberapa class .NET 4.x pada .NET versi sebelumnya.

Oleh sebab itu, Firebase Unity SDK versi 5.4.0 dan yang lebih baru menyediakan DLL penerusan jenis yang meneruskan jenis Parse (misalnya, penerapan Parse dari System.Threading.Tasks.Task) ke framework .NET. Sayangnya, IL2CPP (transpiler yang mengonversi C# menjadi C++) yang dikirim di Unity 2017.1.x tidak memproses secara benar DLL penerusan jenis, sehingga menghasilkan error build yang menyerupai berikut ini:

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

Saat ini, tidak tersedia solusi untuk error build .NET 4.x IL2CPP di Unity 2017.1, jadi Anda harus mengupgrade ke Unity 2017.2 atau yang lebih baru untuk menggunakan .NET 4.x dalam project yang dikompilasi dengan IL2CPP.

Networking Unity 2017.2

Firebase Realtime Database membuat koneksi jaringan TLS menggunakan stack networking .NET. Fungsionalitas TLS akan rusak di Unity 2017.2 jika menggunakan .NET 4.6 yang menyebabkan kegagalan plugin Realtime Database di editor dan di desktop.

Masalah ini belum ada solusinya, jadi Anda harus menggunakan Unity versi berbeda, misalnya versi 2017.1 atau 2017.3.

File konfigurasi Android Firebase tidak ada di Unity 2020.

Untuk mendukung versi Unity yang tidak memiliki kemampuan untuk menyesuaikan build Gradle, alat editor Firebase menghasilkan Assets/Plugins/Android/Firebase/res/values/google-services.xml sebagai resource Android yang akan dikemas dalam build Android. Jadi, Firebase SDK dapat menggunakannya untuk menginisialisasi instance FirebaseApp default.

Di Unity 2020, semua resource Android harus berada di direktori dengan akhiran .androidlib. Jika project Anda menggunakan Firebase SDK yang menghasilkan direktori Assets/Plugins/Android/Firebase, ganti namanya menjadi Assets/Plugins/Android/Firebase.androidlib. Pastikan file tersebut berisi AndroidManifest.xml, project.properties, dan res/values/google-services.xml.

Masalah dengan dex tunggal saat mem-build aplikasi Android

Saat mem-build aplikasi Android, Anda mungkin mengalami kegagalan build yang terkait dengan file dex tunggal. Pesan error akan terlihat seperti berikut, jika project Anda dikonfigurasi untuk menggunakan sistem build Gradle.

Cannot fit requested classes in a single dex file.

File Dalvik Executable (.dex) digunakan untuk menyimpan sekumpulan definisi class dan data tambahan yang terkait untuk aplikasi Android (.apk). File dex tunggal dibatasi ke referensi yang berisi 65.536 metode. Build akan gagal jika jumlah total metode dari semua library Android di project Anda melampaui batas ini.

Unity memperkenalkan Minifikasi di 2017.2, yang menggunakan Proguard (atau alat lain di beberapa versi Unity) untuk menghapus kode yang tidak terpakai, yang dapat mengurangi jumlah total metode yang dirujuk dalam file dex tunggal. Opsi ini dapat ditemukan di Player Settings > Android > Publishing Settings > Minify. Opsinya mungkin berbeda pada versi Unity yang berbeda. Karena itu, baca dokumentasi resmi terkait Unity.

Jika jumlah metode yang direferensikan masih melebihi batas, opsi lainnya adalah mengaktifkan multidex. Ada beberapa cara untuk melakukan ini di Unity:

  • Jika Custom Gradle Template di bawah Player Settings diaktifkan, ubah mainTemplate.gradle.
  • Jika Anda menggunakan Android Studio untuk mem-build project yang diekspor, ubah file build.gradle level modul.

Detail selengkapnya dapat ditemukan di panduan pengguna multidex.

Menyiapkan alur kerja desktop (beta)

Saat Anda membuat game, pengujian game sering kali jauh lebih mudah dilakukan di editor Unity dan di platform desktop terlebih dahulu. Kemudian, Anda bisa men-deploy dan melakukan pengujian di perangkat seluler selama proses pengembangan. Untuk mendukung alur kerja ini, kami menyediakan beberapa fitur Firebase Unity SDK yang dapat dijalankan di Windows, macOS, Linux, dan dari dalam editor Unity:

  1. Siapkan project Unity platform desktop dengan mengikuti petunjuk yang sama seperti untuk platform seluler (mulai dengan langkah Mendaftarkan aplikasi dengan Firebase di atas).

  2. Jalankan project Unity Anda di Unity IDE atau pilih untuk mem-build project Unity Anda untuk desktop.

  3. (Opsional) Jalankan project Unity Anda dalam Mode Edit.

    Firebase Unity SDK juga dapat dijalankan dalam mode edit Unity, yang memungkinkan penggunaannya dalam plugin editor.

    1. Saat Anda membuat FirebaseApp yang digunakan oleh editor, jangan gunakan instance default.

    2. Sebagai gantinya, berikan nama unik untuk panggilan FirebaseApp.Create().

      Hal ini penting untuk menghindari konflik dalam memilih antara instance yang digunakan oleh Unity IDE dan instance yang digunakan oleh project Unity Anda.

Produk Firebase yang didukung

Pelajari lebih lanjut tentang library Firebase Unity di dokumentasi referensi.

Firebase Unity SDK mendukung produk Firebase berikut di iOS dan Android:

Produk Firebase Paket Unity
AdMob Didistribusikan secara terpisah dalam AdMob Unity Plugin
Analytics FirebaseAnalytics.unitypackage
Authentication FirebaseAuth.unitypackage
Cloud Firestore (beta) FirebaseFirestore.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Cloud Messaging FirebaseMessaging.unitypackage
(direkomendasikan) FirebaseAnalytics.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
(direkomendasikan) FirebaseAnalytics.unitypackage
Dynamic Links FirebaseDynamicLinks.unitypackage
(direkomendasikan) FirebaseAnalytics.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage
(direkomendasikan) FirebaseAnalytics.unitypackage

Produk Firebase yang didukung (desktop)

Firebase Unity SDK menyertakan dukungan alur kerja desktop untuk sekumpulan produk, sehingga bagian Firebase tertentu dapat digunakan di editor Unity dan di desktop mandiri yang di-build di Windows, macOS, serta Linux.

Produk Firebase (desktop) Paket Unity
Authentication FirebaseAuth.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Cloud Firestore FirebaseFirestore.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage

Firebase menyediakan library desktop yang tersisa sebagai implementasi stub (non-fungsional) untuk kenyamanan saat mem-build aplikasi untuk Windows, macOS, dan Linux. Oleh sebab itu, Anda tidak perlu mengompilasi kode secara bersyarat saat menargetkan desktop.

Langkah berikutnya