Menambahkan Firebase ke project C++

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 yang berikut ini:

    • Xcode 13.3.1 atau versi yang lebih baru
    • CocoaPods 1.12.0 atau versi yang lebih baru
  • Pastikan project Anda menarget versi platform berikut atau yang lebih baru:

    • iOS 13
    • tvOS 13
  • Siapkan perangkat fisik atau gunakan simulator 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 Apple, Anda perlu mendaftarkan aplikasi ke project Firebase. Mendaftarkan aplikasi sering kali disebut sebagai "menambahkan" aplikasi ke project Anda.

  1. Buka Firebase console.

  2. Di bagian tengah halaman ringkasan project, klik ikon iOS+ untuk meluncurkan alur kerja penyiapan.

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

  3. Masukkan ID paket aplikasi Anda di kolom bundle ID.

  4. (Opsional) Masukkan informasi lain aplikasi: App nickname dan App Store ID.

  5. Klik Register app.

Langkah 4: Tambahkan file konfigurasi Firebase

  1. Klik Download GoogleService-Info.plist untuk mendapatkan file konfigurasi platform Apple Firebase Anda.

  2. Buka project C++ Anda di IDE, lalu tarik file konfigurasi ke root project C++ Anda.

  3. Jika diminta, pilih untuk menambahkan file konfigurasi ke semua target.

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.

  1. 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.

  2. Tambahkan pod Firebase dari SDK yang telah diekstrak.

    1. Buat Podfile jika Anda belum memilikinya:

      cd your-app-directory
      pod init

    2. Tambahkan pod Firebase yang ingin digunakan dalam aplikasi Anda ke Podfile tersebut.

      Analytics diaktifkan

      # Add the Firebase pod for Google Analytics
      pod 'FirebaseAnalytics'
      # Add the pods for any other Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'

      Analytics tidak diaktifkan

      # Add the pods for the Firebase products you want to use in your app
      # For example, to use Firebase Authentication and Firebase Realtime Database
      pod 'FirebaseAuth'
      pod 'FirebaseDatabase'
    3. Instal pod, lalu buka file .xcworkspace di Xcode.

      pod install
      open your-app.xcworkspace

  3. Tambahkan framework Firebase dari SDK yang telah diekstrak.

    Cara termudah untuk menambahkan framework ini adalah dengan menariknya dari jendela Finder secara langsung ke panel Project Navigator Xcode (secara default, panel paling kiri; atau klik ikon file di kiri atas Xcode).

    1. Tambahkan framework Firebase C++ firebase.framework, yang wajib ada untuk menggunakan produk Firebase apa pun.

    2. Tambahkan framework untuk setiap produk Firebase yang ingin digunakan. Misalnya, untuk menggunakan Firebase Authentication, tambahkan firebase_auth.framework.

  4. Kembali ke Firebase console, di alur kerja penyiapan, klik Next.

  5. Jika Anda menambahkan Analytics, jalankan aplikasi Anda untuk mengirim verifikasi ke Firebase bahwa Anda telah berhasil mengintegrasikan Firebase. Jika tidak, Anda dapat melewati proses verifikasi ini.

    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 dikonfigurasi untuk menggunakan produk 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 platform Apple

Perlu diperhatikan bahwa library C++ untuk Android tercantum di halaman penyiapan ini untuk versi Android.

Setiap produk Firebase memiliki dependensi yang berbeda-beda. Pastikan untuk menambahkan semua dependensi yang tercantum untuk produk Firebase yang diinginkan ke Podfile dan project C++ Anda.

Setiap produk Firebase hanya dapat mendukung pemilihan platform Apple OS (iOS, tvOS, dll.). Periksa platform yang didukung oleh setiap library di bagian Pelajari C++ dan Firebase lebih lanjut.

Produk Firebase Framework dan Pod
AdMob (wajib ada) firebase.framework
firebase_admob.framework
(wajib ada) firebase_analytics.framework

pod 'FirebaseAdMob', '11.4.2'
(wajib ada) pod 'FirebaseAnalytics', '11.4.2'
Analytics (wajib ada) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '11.4.2'
App Check (wajib ada) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '11.4.2'
Authentication (wajib ada) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '11.4.2'
Cloud Firestore (wajib ada) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '11.4.2'
pod 'FirebaseAuth', '11.4.2'
Cloud Functions (wajib ada) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '11.4.2'
Cloud Messaging (wajib ada) firebase.framework
firebase_messaging.framework
(direkomendasikan) firebase_analytics.framework

pod 'FirebaseMessaging', '11.4.2'
(direkomendasikan) pod 'FirebaseAnalytics', '11.4.2'
Cloud Storage (wajib ada) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '11.4.2'
Dynamic Links (wajib ada) firebase.framework
firebase_dynamic_links.framework
(direkomendasikan) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '11.4.2'
(direkomendasikan) pod 'FirebaseAnalytics', '11.4.2'
Realtime Database (wajib ada) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '11.4.2'
Remote Config (wajib ada) firebase.framework
firebase_remote_config.framework
(direkomendasikan) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '11.4.2'
(direkomendasikan) pod 'FirebaseAnalytics', '11.4.2'

Informasi tambahan untuk penyiapan seluler

Method swizzling

Beberapa peristiwa aplikasi di iOS (misalnya membuka URL dan menerima notifikasi) mengharuskan delegasi aplikasi Anda untuk mengimplementasikan metode tertentu. Misalnya, menerima notifikasi mungkin memerlukan delegasi aplikasi Anda untuk menerapkan application:didReceiveRemoteNotification:. Karena setiap aplikasi iOS memiliki delegasi aplikasinya sendiri, Firebase menggunakan method swizzling, yang memungkinkan penggantian suatu metode dengan metode lainnya, untuk menambahkan handler-nya sendiri selain handler yang telah Anda terapkan.

Library Dynamic Links dan Cloud Messaging perlu menambahkan handler ke delegasi aplikasi menggunakan method swizzling. Jika Anda menggunakan salah satu produk Firebase ini, pada waktu pemuatan, Firebase akan mengidentifikasi class AppDelegate Anda dan melakukan swizzling terhadap metode yang diperlukan, lalu mengikat callback ke penerapan metode yang ada.

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++.

  1. Untuk alur kerja desktop, Anda perlu menyelesaikan langkah berikut:

    1. Mengonfigurasi project C++ Anda untuk CMake
    2. Membuat project Firebase
    3. Mendaftarkan aplikasi Anda (iOS atau Android) ke Firebase
    4. Menambahkan file konfigurasi Firebase platform seluler
  2. 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 file GoogleService-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.

  3. 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.

    1. Tetapkan variabel lingkungan FIREBASE_CPP_SDK_DIR ke lokasi Firebase C++ SDK yang telah diekstrak.

    2. 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}")
      
  4. 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