Tingkatkan performa game C++ Anda dengan Firebase C++ SDK kami yang menyediakan antarmuka C++ pada Firebase SDK.
Dapatkan akses ke Firebase sepenuhnya dari kode C++ Anda, tanpa harus menulis kode native platform apa pun. Firebase SDK juga menerjemahkan berbagai idiom bahasa tertentu yang digunakan oleh Firebase agar menjadi antarmuka yang lebih dikenal oleh developer C++.
Cari tahu informasi lebih lanjut tentang cara meningkatkan performa game Anda dengan Firebase di halaman game Firebase kami.
Sudah menambahkan Firebase ke project C++ Anda? Pastikan Anda menggunakan versi terbaru Firebase C++ SDK.
Prasyarat
Instal editor atau IDE pilihan Anda, seperti Android Studio, IntelliJ, atau VS Code.
Dapatkan Android SDK.
Pastikan project Anda memenuhi persyaratan berikut:
Level API target 21 (Lollipop) atau yang lebih baru
Menggunakan Gradle dan dikonfigurasi dengan CMake
Siapkan perangkat fisik atau gunakan emulator untuk menjalankan aplikasi Anda.
Login ke Firebase menggunakan akun Google Anda.
Langkah 2: Buat project Firebase
Agar dapat menambahkan Firebase ke project C++, Anda perlu membuat project Firebase untuk terhubung ke project C++. Buka bagian Memahami Project Firebase untuk mempelajari project Firebase lebih lanjut.
Langkah 3: Daftarkan aplikasi Anda ke Firebase
Untuk menggunakan Firebase di aplikasi Android, Anda perlu mendaftarkan aplikasi ke project Firebase. Mendaftarkan aplikasi sering kali disebut sebagai "menambahkan" aplikasi ke project Anda.
Buka Firebase console.
Di bagian tengah halaman ringkasan project, klik ikon Android (
) atau Add app untuk meluncurkan alur kerja penyiapan.Masukkan nama paket aplikasi Anda di kolom Android package name.
(Opsional) Masukkan informasi aplikasi yang lain: App nickname dan Debug signing certificate SHA-1.
Klik Register app.
Langkah 4: Tambahkan file konfigurasi Firebase
Klik Download google-services.json untuk mendapatkan file konfigurasi Android Firebase Anda.
Buka project C++ Anda di IDE, lalu tambahkan file konfigurasi ke project Anda:
Build Gradle — Tambahkan file konfigurasi ke direktori yang sama dengan file
build.gradle
level teratas.Sistem build lainnya — Pelajari Sistem build kustom di bawah untuk membuat Resource String Android.
(Khusus build Gradle) Untuk mengaktifkan layanan Firebase di project C++ Anda, tambahkan plugin google-services ke file
build.gradle
level teratas.Tambahkan aturan untuk menyertakan plugin Gradle Layanan Google. Pastikan Anda juga memiliki repositori Maven Google.
buildscript { repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository } dependencies { // ... // Add the following lines: classpath 'com.google.gms:google-services:4.4.2' // Google Services plugin implementation 'com.google.android.gms:18.5.0' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }
Terapkan plugin Gradle Layanan Google:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
Anda sudah menyelesaikan tugas penyiapan di Firebase console. Lanjutkan ke Menambahkan Firebase C++ SDK di bawah ini.
Langkah 5: Tambahkan Firebase C++ SDK
Langkah-langkah di bagian ini adalah contoh cara menambahkan produk Firebase yang didukung ke project Firebase C++ Anda.
Download Firebase C++ SDK, lalu ekstrak SDK ke tempat yang mudah diakses.
Firebase C++ SDK tidak bersifat spesifik per platform, tetapi memuat library yang spesifik per platform.
Pada file
gradle.properties
project Anda, tentukan lokasi SDK yang telah diekstrak:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
Pada file
settings.gradle
project Anda, tambahkan konten berikut:def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir') gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir" includeBuild "$firebase_cpp_sdk_dir"
Pada file Gradle modul (level aplikasi) (biasanya
app/build.gradle
), tambahkan konten berikut.
Sertakan dependensi library untuk produk Firebase yang ingin digunakan di aplikasi Anda.Analytics diaktifkan
android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } # Add the dependencies for the Firebase products you want to use in your app # For example, to use Analytics, Firebase Authentication, and Firebase Realtime Database apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { analytics auth database }
Analytics tidak diaktifkan
android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } # Add the dependencies for the Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { auth database }
Tambahkan konten berikut ke file
CMakeLists.txt
project Anda.
Sertakan library untuk produk Firebase yang ingin digunakan di aplikasi Anda.Analytics diaktifkan
# Add Firebase libraries to the target using the function from the SDK. add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) # The Firebase C++ library `firebase_app` is required, # and it must always be listed last. # Add the Firebase SDKs for the products you want to use in your app # For example, to use Analytics, Firebase Authentication, and Firebase Realtime Database set(firebase_libs firebase_analytics firebase_auth firebase_database firebase_app ) target_link_libraries(${target_name} "${firebase_libs}")
Analytics tidak diaktifkan
# Add Firebase libraries to the target using the function from the SDK. add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) # The Firebase C++ library `firebase_app` is required, # and it must always be listed last. # Add the Firebase SDKs for the products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database set(firebase_libs firebase_auth firebase_database firebase_app ) target_link_libraries(${target_name} "${firebase_libs}")
Sinkronkan aplikasi Anda untuk memastikan bahwa semua dependensi memiliki versi yang diperlukan.
Jika Anda menambahkan Analytics, jalankan aplikasi Anda untuk mengirim verifikasi ke Firebase bahwa Anda telah berhasil mengintegrasikan Firebase. Jika tidak, Anda dapat mengabaikan langkah verifikasi.
Log perangkat Anda akan menampilkan verifikasi Firebase bahwa inisialisasi telah selesai. Jika menjalankan aplikasi pada emulator yang memiliki akses jaringan, Firebase console akan memberi tahu bahwa koneksi aplikasi Anda telah selesai.
Anda sudah siap! Aplikasi C++ Anda sudah terdaftar dan dikonfigurasikan untuk menggunakan layanan Firebase.
Library yang tersedia
Pelajari library C++ Firebase lebih lanjut di dokumentasi referensi dan dalam rilis SDK open source kami di GitHub.
Library yang tersedia untuk Android (menggunakan CMake)
Perlu diperhatikan bahwa library C++ untuk platform Apple tercantum di versi platform Apple (iOS+) di halaman penyiapan ini.
Produk Firebase | Referensi library ( firebaseCpp.dependencies untuk file build.gradle ) |
Referensi library ( firebase_libs untuk file CMakeLists.txt ) |
---|---|---|
AdMob | admob |
firebase_admob (wajib ada) firebase_analytics (wajib ada) firebase_app
|
Analytics | analytics |
firebase_analytics (wajib ada) firebase_app
|
App Check | appCheck |
firebase_app_check (wajib ada) firebase_app
|
Authentication | auth |
firebase_auth (wajib ada) firebase_app
|
Cloud Firestore | firestore |
firebase_firestore (wajib ada) firebase_auth (wajib ada) firebase_app
|
Cloud Functions | functions |
firebase_functions (wajib ada) firebase_app
|
Cloud Messaging | messaging |
firebase_messaging (direkomendasikan) firebase_analytics (wajib ada) firebase_app
|
Cloud Storage | storage |
firebase_storage (wajib ada) firebase_app
|
Dynamic Links | dynamicLinks |
firebase_dynamic_links (direkomendasikan) firebase_analytics (wajib ada) firebase_app
|
Realtime Database | database |
firebase_database (wajib ada) firebase_app
|
Remote Config | remoteConfig |
firebase_remote_config (direkomendasikan) firebase_analytics (wajib ada) firebase_app
|
Informasi tambahan untuk penyiapan seluler
Mendapatkan laporan error NDK
Firebase Crashlytics mendukung pelaporan error untuk aplikasi yang menggunakan library native Android. Untuk mempelajari lebih lanjut, lihat Mendapatkan laporan error Android NDK.
Sistem build kustom
Firebase menyediakan skrip generate_xml_from_google_services_json.py
untuk
mengonversi google-services.json
menjadi resource .xml
yang dapat Anda sertakan dalam
project. Skrip ini menerapkan transformasi yang sama dengan yang dilakukan oleh plugin Gradle layanan Google Play saat mem-build aplikasi Android.
Jika Anda tidak mem-build project menggunakan Gradle (misalnya, Anda menggunakan ndk-build, makefile, Visual Studio, dll.), Anda dapat menggunakan skrip ini untuk mengotomatiskan pembuatan Resource String Android.
ProGuard
Berbagai sistem build Android menggunakan ProGuard untuk build dalam mode Rilis untuk mengurangi ukuran aplikasi dan melindungi kode sumber Java.
Jika menggunakan ProGuard, Anda harus menambahkan file dalam libs/android/*.pro
yang sesuai dengan library Firebase C++ yang Anda gunakan dalam konfigurasi ProGuard.
Misalnya, dengan Gradle, jika Anda menggunakan Google Analytics, file build.gradle
Anda akan terlihat seperti:
android { // ... buildTypes { release { minifyEnabled true proguardFile getDefaultProguardFile('your-project-proguard-config.txt') proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/app.pro") proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/analytics.pro") // ... and so on, for each Firebase C++ library that you're using } } }
Persyaratan layanan Google Play
Sebagian besar library Firebase C++ mengharuskan layanan Google Play berada di perangkat Android klien. Jika library Firebase C++ menampilkan kInitResultFailedMissingDependency
pada saat inisialisasi, berarti layanan Google Play tidak tersedia di perangkat klien (artinya perlu diupdate, diaktifkan kembali, perlu perbaikan izin, dll.). Library Firebase tidak dapat digunakan jika situasi di perangkat klien belum diperbaiki.
Anda dapat mencari tahu mengapa layanan Google Play tidak tersedia di perangkat klien (dan mencoba memperbaikinya) dengan menggunakan fungsi di google_play_services/availability.h
.
Tabel berikut mencantumkan apakah layanan Google Play diperlukan di perangkat klien untuk setiap produk Firebase yang didukung.
Library Firebase C++ | Apakah layanan Google Play diperlukan di perangkat klien? |
---|---|
AdMob | Tidak diperlukan (biasanya) |
Analytics | Tidak diperlukan |
Authentication | Wajib |
Cloud Firestore | Wajib |
Cloud Functions | Wajib |
Cloud Messaging | Wajib |
Cloud Storage | Wajib |
Dynamic Links | Wajib |
Realtime Database | Wajib |
Remote Config | Wajib |
AdMob dan layanan Google Play
Sebagian besar versi Google Mobile Ads SDK untuk Android dapat berfungsi dengan baik tanpa layanan Google Play di perangkat klien. Namun, jika Anda menggunakan dependensi com.google.android.gms:play-services-ads-lite
, bukan dependensi standar com.google.firebase:firebase-ads
yang tercantum di atas, layanan Google Play diperlukan.
Inisialisasi AdMob hanya akan menampilkan kInitResultFailedMissingDependency
jika kedua hal berikut berlaku:
- Layanan Google Play tidak tersedia di perangkat klien.
- Anda menggunakan
com.google.android.gms:play-services-ads-lite
.
Menyiapkan alur kerja desktop (beta)
Saat Anda membuat game, pengujian game sering kali jauh lebih mudah dilakukan di platform desktop terlebih dahulu, baru kemudian di-deploy dan diuji di perangkat seluler selama proses pengembangan. Untuk mendukung alur kerja ini, kami menyediakan subset Firebase C++ SDK yang dapat dijalankan di Windows, macOS, Linux, dan dari dalam editor C++.
Untuk alur kerja desktop, Anda perlu menyelesaikan langkah berikut:
- Mengonfigurasi project C++ Anda untuk CMake
- Membuat project Firebase
- Mendaftarkan aplikasi Anda (iOS atau Android) ke Firebase
- Menambahkan file konfigurasi Firebase platform seluler
Buat versi desktop untuk file konfigurasi Firebase:
Jika Anda menambahkan file
google-services.json
Android - Saat menjalankan aplikasi, Firebase akan mencari file seluler ini, lalu otomatis membuat file konfigurasi Firebase desktop (google-services-desktop.json
).Jika Anda menambahkan file
GoogleService-Info.plist
iOS — Sebelum menjalankan aplikasi, Anda harus mengonversi file seluler ini menjadi file konfigurasi Firebase desktop. Untuk mengonversi file tersebut, jalankan perintah berikut dari direktori yang sama dengan fileGoogleService-Info.plist
Anda:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
File konfigurasi desktop ini berisi project ID C++ yang Anda masukkan dalam alur kerja penyiapan Firebase console. Buka bagian Memahami Project Firebase untuk mempelajari file konfigurasi lebih lanjut.
Tambahkan Firebase SDK ke project C++ Anda.
Langkah-langkah di bawah ini berfungsi sebagai contoh cara menambahkan produk Firebase yang didukung ke project C++ Anda. Dalam contoh ini, kita akan mempelajari cara menambahkan Firebase Authentication dan Firebase Realtime Database.
Tetapkan variabel lingkungan
FIREBASE_CPP_SDK_DIR
ke lokasi Firebase C++ SDK yang telah diekstrak.Pada file
CMakeLists.txt
project Anda, tambahkan konten berikut, termasuk library untuk produk Firebase yang ingin Anda gunakan. Misalnya, untuk menggunakan Firebase Authentication dan Firebase Realtime Database:# Add Firebase libraries to the target using the function from the SDK. add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) # The Firebase C++ library `firebase_app` is required, # and it must always be listed last. # Add the Firebase SDKs for the products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database set(firebase_libs firebase_auth firebase_database firebase_app) target_link_libraries(${target_name} "${firebase_libs}")
Jalankan aplikasi C++ Anda.
Library yang tersedia (desktop)
Firebase C++ SDK menyertakan dukungan alur kerja desktop untuk subset fitur, yang memungkinkan bagian tertentu dari Firebase digunakan dalam build desktop mandiri di Windows, macOS, dan Linux.
Produk Firebase | Referensi library (menggunakan CMake) |
---|---|
App Check |
firebase_app_check (wajib ada) firebase_app
|
Authentication |
firebase_auth (wajib ada) firebase_app
|
Cloud Firestore |
firebase_firestore firebase_auth firebase_app
|
Cloud Functions |
firebase_functions (wajib ada) firebase_app
|
Cloud Storage |
firebase_storage (wajib ada) firebase_app
|
Realtime Database |
firebase_database (wajib ada) firebase_app
|
Remote Config |
firebase_remote_config (wajib ada) firebase_app
|
Firebase menyediakan library desktop lainnya sebagai implementasi stub (nonfungsional) demi kemudahan saat mem-build aplikasi untuk Windows, macOS, dan Linux. Oleh karena itu, Anda tidak perlu mengompilasi kode secara bersyarat saat menargetkan desktop.
Realtime Database di desktop
Realtime Database SDK untuk desktop menggunakan REST untuk mengakses database, sehingga Anda harus mendeklarasikan indeks yang digunakan dengan Query::OrderByChild()
di desktop. Jika tidak, pemroses akan gagal.
Informasi tambahan untuk penyiapan desktop
Library Windows
Untuk Windows, versi library disediakan berdasarkan:
- Platform build: mode 32-bit (x86) vs 64-bit (x64)
- Lingkungan runtime Windows: Multithreaded/MT vs Multithreaded DLL/MD
- Target: Rilis vs Debug
Perlu diperhatikan bahwa library berikut diuji menggunakan Visual Studio 2015 dan 2017.
Saat mem-build aplikasi desktop C++ di Windows, tautkan library Windows SDK berikut ke project Anda. Baca dokumentasi compiler untuk informasi lebih lanjut.
Library Firebase C++ | Dependensi library Windows SDK |
---|---|
App Check | advapi32, ws2_32, crypt32 |
Authentication | advapi32, ws2_32, crypt32 |
Cloud Firestore | advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32 |
Cloud Functions | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
Cloud Storage | advapi32, ws2_32, crypt32 |
Realtime Database | advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv |
Remote Config | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
Library macOS
Untuk macOS (Darwin), versi library disediakan untuk platform 64-bit (x86_64). Framework juga disediakan demi kemudahan Anda.
Perlu diperhatikan bahwa library macOS telah diuji menggunakan Xcode 13.3.1.
Saat mem-build aplikasi desktop C++ di macOS, tautkan hal-hal berikut ke project Anda:
- Library sistem
pthread
- Framework sistem macOS
CoreFoundation
- Framework sistem macOS
Foundation
- Framework sistem macOS
Security
- Framework sistem macOS
GSS
- Framework sistem macOS
Kerberos
- Framework sistem macOS
SystemConfiguration
Baca dokumentasi compiler untuk mengetahui informasi lebih lanjut.
Library Linux
Untuk Linux, versi library disediakan untuk platform 32-bit (i386) dan 64-bit (x86_64).
Perlu diperhatikan bahwa library Linux diuji menggunakan GCC 4.8.0, GCC 7.2.0, dan Clang 5.0 di Ubuntu.
Saat mem-build aplikasi desktop C++ di Linux, tautkan library sistem pthread
ke project Anda. Baca dokumentasi compiler untuk mengetahui informasi lebih lanjut. Jika Anda mem-build dengan GCC 5 atau yang lebih baru, tentukan -D_GLIBCXX_USE_CXX11_ABI=0
.
Langkah berikutnya
Pelajari contoh aplikasi Firebase.
Pelajari SDK open source di GitHub.
Bersiap meluncurkan aplikasi Anda:
- Siapkan pemberitahuan anggaran untuk project Anda di konsol Google Cloud.
- Pantau dasbor Usage and billing di konsol Firebase untuk mendapatkan gambaran keseluruhan penggunaan project Anda di berbagai layanan Firebase.
- Periksa checklist peluncuran Firebase.