Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Menambahkan Firebase ke project C++

Tingkatkan performa game C++ Anda dengan Firebase C++ SDK kami yang menyediakan antarmuka C++ pada Firebase untuk iOS dan Android.

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 Firebase C++ SDK versi terbaru.

Prasyarat

  • Instal berikut ini:

    • Xcode 12 atau yang lebih baru
    • CocoaPods 1.10.0 atau yang lebih baru
  • Pastikan project Anda menargetkan iOS 10 atau yang lebih baru.

  • Siapkan perangkat iOS fisik atau gunakan simulator iOS 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

Setelah memiliki project Firebase, Anda dapat menambahkan aplikasi iOS ke dalamnya.

Buka artikel Memahami Project Firebase untuk mempelajari lebih lanjut praktik terbaik dan pertimbangan dalam menambahkan aplikasi ke project Firebase, termasuk cara menangani beberapa varian build.

  1. Buka Firebase console.

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

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

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

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

  5. Klik Daftarkan aplikasi.

Langkah 4: Tambahkan file konfigurasi Firebase

  1. Klik Download GoogleService-Info.plist untuk mendapatkan file konfigurasi iOS 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 tersebut di tempat yang mudah diakses.

    Firebase C++ SDK tidak bersifat khusus platform, tetapi memuat library khusus 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 'Firebase/Analytics'
      # 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 'Firebase/Auth' pod 'Firebase/Database'

      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 'Firebase/Auth'
      pod 'Firebase/Database'
    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 firebase.framework framework Firebase C++, yang wajib ada untuk menggunakan semua produk Firebase.

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

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

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

    Log perangkat Anda akan menampilkan verifikasi Firebase bahwa inisialisasi telah selesai. Jika Anda menjalankan aplikasi pada emulator yang memiliki akses jaringan, Firebase console akan memberitahukan 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 iOS

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.

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

pod 'Firebase/AdMob', '8.7.0'
(wajib ada) pod 'Firebase/Analytics', '8.7.0'
Analytics (wajib ada) firebase.framework
firebase_analytics.framework

pod 'Firebase/Analytics', '8.7.0'
Authentication (wajib ada) firebase.framework
firebase_auth.framework

pod 'Firebase/Auth', '8.7.0'
Cloud Firestore (beta) (wajib ada) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'Firebase/Firestore', '8.7.0'
pod 'Firebase/Auth', '8.7.0'
Cloud Functions (wajib ada) firebase.framework
firebase_functions.framework

pod 'Firebase/Functions', '8.7.0'
Cloud Messaging (wajib ada) firebase.framework
firebase_messaging.framework
(direkomendasikan) firebase_analytics.framework

pod 'Firebase/Messaging', '8.7.0'
(direkomendasikan) pod 'Firebase/Analytics', '8.7.0'
Cloud Storage (wajib ada) firebase.framework
firebase_storage.framework

pod 'Firebase/Storage', '8.7.0'
Dynamic Links (wajib ada) firebase.framework
firebase_dynamic_links.framework
(direkomendasikan) firebase_analytics.framework

pod 'Firebase/DynamicLinks', '8.7.0'
(direkomendasikan) pod 'Firebase/Analytics', '8.7.0'
Realtime Database (wajib ada) firebase.framework
firebase_database.framework

pod 'Firebase/Database', '8.7.0'
Remote Config (wajib ada) firebase.framework
firebase_remote_config.framework
(direkomendasikan) firebase_analytics.framework

pod 'Firebase/RemoteConfig', '8.7.0'
(direkomendasikan) pod 'Firebase/Analytics', '8.7.0'

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 melampirkan pengendalinya sendiri sebagai tambahan dari pengendali yang telah diimplementasikan.

Library Dynamic Links dan Cloud Messaging perlu melampirkan pengendali ke delegasi aplikasi menggunakan method swizzling. Jika Anda menggunakan salah satu produk Firebase ini, pada waktu pemuatan, Firebase akan mengidentifikasi class AppDelegate Anda dan mengganti metode yang diperlukan ke dalamnya, yang menghubungkan panggilan kembali 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 membahas 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)
Authentication firebase_auth
(wajib ada) firebase_app
Cloud Firestore (beta) 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 yang tersisa sebagai implementasi stub (non-fungsional) demi kemudahan saat mem-build aplikasi untuk Windows, macOS, dan Linux. Oleh karena itu, Anda tidak perlu mengompilasi kode secara bersyarat saat menargetkan desktop.

Desktop Realtime Database

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

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