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.
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 Android — Emulator harus menggunakan image emulator dengan Google Play.
- Login ke Firebase menggunakan Akun Google Anda.
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.
Buka Firebase console.
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.
Pilih target build project Unity yang ingin Anda daftarkan, atau Anda bahkan dapat memilih untuk mendaftarkan kedua target sekaligus.
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.
(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.Klik Daftarkan aplikasi.
Langkah 3: Tambahkan file konfigurasi Firebase
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.
Buka jendela Project dari project Unity Anda, lalu pindahkan file konfigurasi Anda ke dalam folder
Assets
.Kembali ke Firebase console, di alur kerja penyiapan, klik Berikutnya.
Langkah 4: Tambahkan Firebase Unity SDK
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.
Pada project Unity yang terbuka, buka Aset > Impor Paket > Paket Kustom.
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
danFirebaseDatabase.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
danFirebaseDatabase.unitypackage
- Tambahkan paket Firebase untuk Google Analytics:
Di jendela Import Unity Package, klik Import.
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:
- Hapus atau nonaktifkan DLL berikut untuk semua platform:
Parse/Plugins/dotNet45/Unity.Compat.dll
Parse/Plugins/dotNet45/Unity.Tasks.dll
- 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:
- Hapus atau nonaktifkan DLL berikut untuk semua platform:
Parse/Plugins/Unity.Compat.dll
Parse/Plugins/Unity.Tasks.dll
- 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 bawahPlayer Settings
diaktifkan, ubahmainTemplate.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:
Siapkan project Unity platform desktop dengan mengikuti petunjuk yang sama seperti untuk platform seluler (mulai dengan langkah Mendaftarkan aplikasi dengan Firebase di atas).
Jalankan project Unity Anda di Unity IDE atau pilih untuk mem-build project Unity Anda untuk desktop.
(Opsional) Jalankan project Unity Anda dalam Mode Edit.
Firebase Unity SDK juga dapat dijalankan dalam mode edit Unity, yang memungkinkan penggunaannya dalam plugin editor.
Saat Anda membuat
FirebaseApp
yang digunakan oleh editor, jangan gunakan instance default.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
Pelajari contoh aplikasi Firebase.
Bersiap meluncurkan aplikasi Anda:
- Siapkan pemberitahuan anggaran untuk project Anda di Google Cloud Console.
- Pantau dasbor Penggunaan dan penagihan di Firebase console.
- Periksa checklist peluncuran Firebase.