Menambahkan Firebase ke Project C++ Andaplat_iosplat_androidplat_cpp

Tentang Firebase C++ SDK

Firebase C++ SDK menyediakan antarmuka C++ pada Firebase untuk iOS dan Android.

Dapatkan akses ke Firebase sepenuhnya dari kode C++ Anda, tanpa harus menulis kode Java (di Android) atau kode Objective-C/Swift (di iOS). SDK juga menerjemahkan berbagai idiom bahasa tertentu yang digunakan oleh Firebase agar menjadi antarmuka yang lebih dikenal oleh developer C++. Untuk menunjukkan betapa mudahnya mengintegrasikan Firebase ke dalam game C++ Anda, kami membuat contoh aplikasi, Zooshi, yang dapat didownload dari GitHub.

Download SDK

Zooshi (GitHub)


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

Fitur

Fitur berikut didukung oleh Firebase C++ SDK di iOS dan Android:

Fitur Library
Aplikasi (library dasar) libfirebase_app.a
AdMob libfirebase_admob.a
Analisis libfirebase_analytics.a
Autentikasi libfirebase_auth.a
Realtime Database libfirebase_database.a
Dynamic Links libfirebase_dynamic_links.a
Cloud Functions libfirebase_functions.a
Invites libinvites.a
Cloud Messaging libfirebase_messaging.a
Remote Config libfirebase_remote_config.a
Cloud Storage libfirebase_storage.a

Firebase C++ SDK juga menyertakan dukungan alur kerja desktop untuk sekumpulan fitur, yang mengaktifkan bagian tertentu dari Firebase di Windows, OS X, dan Linux. (Beta)

Penyiapan untuk iOS

Prasyarat

  • Xcode 9.4.1 atau yang lebih baru.
  • Untuk Cloud Messaging:
    • Perangkat iOS fisik
    • Sertifikat APN dengan Push Notification yang diaktifkan

Menyiapkan aplikasi di Firebase console

Waktunya menambahkan Firebase ke aplikasi Anda. Untuk melakukannya, Anda memerlukan project Firebase dan file konfigurasi Firebase untuk aplikasi Anda.

Untuk membuat project Firebase:

  1. Buka Firebase console.

  2. Klik Tambahkan project, lalu pilih atau masukkan Nama project.

    • Jika Anda memiliki project Google yang terkait dengan aplikasi Anda, pilih project tersebut dari menu dropdown Nama project.
    • Jika Anda belum memiliki project Google, masukkan Nama project baru.
  3. (Opsional) Edit Project ID.

    Firebase menetapkan ID unik ke project Firebase Anda secara otomatis. ID ini ditampilkan di layanan Firebase yang tersedia untuk publik, misalnya:

    • URL Realtime Database default — your-project-id.firebaseio.com
    • Nama bucket Cloud Storage default — your-project-id.appspot.com
    • Subdomain Hosting default — your-project-id.firebaseapp.com
  4. Ikuti langkah-langkah penyiapan yang tersisa di Firebase console, lalu klik Buat project (atau Tambahkan Firebase, jika Anda menggunakan project Google yang sudah ada).

Firebase menyediakan resource untuk project Firebase Anda secara otomatis. Proses ini biasanya perlu waktu beberapa menit. Setelah selesai, Anda akan dibawa ke halaman ringkasan untuk project Firebase Anda di Firebase console.

Setelah memiliki project, Anda dapat menambahkan aplikasi iOS ke dalamnya:

  1. Klik Tambahkan Firebase ke aplikasi iOS dan ikuti langkah penyiapannya. Jika Anda mengimpor project Google yang sudah ada, prosesnya dapat terjadi secara otomatis dan Anda dapat langsung mendownload file konfigurasi.

  2. Saat diminta, masukkan ID paket aplikasi Anda. Anda harus memasukkan ID paket yang digunakan aplikasi. Hal ini hanya dapat dilakukan saat Anda menambahkan aplikasi tersebut ke project Firebase.

  3. Tambahkan file konfigurasi iOS Firebase ke aplikasi Anda:

    1. Klik Download GoogleService-Info.plist untuk mendapatkan file konfigurasi iOS Firebase Anda (GoogleService-Info.plist).

      Anda dapat mendownload file konfigurasi iOS Firebase lagi kapan saja.

    2. Pindahkan file konfigurasi ke root project Xcode Anda. Jika diminta, pilih untuk menambahkan file konfigurasi ke semua target.

  4. Setelah Anda menambahkan kode inisialisasi, jalankan aplikasi untuk mengirimkan verifikasi ke Firebase console bahwa Anda telah berhasil menginstal Firebase.

Menambahkan Firebase C++ SDK ke aplikasi Anda

  1. Download Firebase C++ SDK. Ekstrak file di tempat yang mudah dijangkau.

  2. Tambahkan framework yang didownload dalam SDK ke project Xcode. Perhatikan bahwa Anda hanya perlu menyertakan framework Firebase dasar, bersama dengan framework yang sesuai dengan layanan yang ingin Anda gunakan (lihat bagian dependensi di bawah). Cara termudah untuk melakukan ini adalah dengan menariknya langsung dari jendela Finder ke panel navigator project di Xcode (secara default adalah panel paling kiri - klik ikon file di sebelah kiri atas). Pastikan Anda menambahkannya ke project Anda, bukan ke project Pods.

  3. Buat aplikasi Anda. Kode Firebase seharusnya telah terkompilasi dan terhubung dengan benar sekarang. Selesai!

Dependensi

Fitur Firebase memiliki dependensi yang berbeda-beda. Pastikan untuk menyertakan semua dependensi yang diperlukan ke project dan Podfile Anda.

Firebase

firebase.framework
pod 'Firebase/Core', '5.15.0'
Analytics

firebase.framework
firebase_analytics.framework
pod 'Firebase/Core', '5.15.0'
AdMob

firebase.framework
firebase_admob.framework
pod 'Firebase/Core', '5.15.0'
pod 'Firebase/AdMob', '5.15.0'
Cloud Messaging

firebase.framework
firebase_messaging.framework
pod 'Firebase/Core', '5.15.0'
pod 'Firebase/Messaging', '5.15.0'
Authentication

firebase.framework
firebase_auth.framework
pod 'Firebase/Core', '5.15.0'
pod 'Firebase/Auth', '5.15.0'
Realtime Database

firebase.framework
firebase_database.framework
pod 'Firebase/Core', '5.15.0'
pod 'Firebase/Database', '5.15.0'
Cloud Functions

firebase.framework
firebase_functions.framework
pod 'Firebase/Core', '5.15.0'
pod 'Firebase/Functions', '5.15.0'
Dynamic Links

firebase.framework
firebase_dynamic_links.framework
pod 'Firebase/Core', '5.15.0'
pod 'Firebase/DynamicLinks', '5.15.0'
Invites

firebase.framework
firebase_invites.framework
pod 'Firebase/Core', '5.15.0'
pod 'Firebase/Invites', '5.15.0'
Remote Config

firebase.framework
firebase_remote_config.framework
pod 'Firebase/Core', '5.15.0'
pod 'Firebase/RemoteConfig', '5.15.0'
Storage

firebase.framework
firebase_storage.framework
pod 'Firebase/Core', '5.15.0'
pod 'Firebase/Storage', '5.15.0'

Method swizzling

Beberapa peristiwa aplikasi di iOS (misalnya membuka URL dan menerima notifikasi) mengharuskan delegasi aplikasi Anda untuk mengimplementasikan metode tertentu. Contohnya, menerima notifikasi mengharuskan delegasi aplikasi Anda untuk mengimplementasikan application:didReceiveRemoteNotification:. Karena setiap aplikasi iOS memiliki delegasi aplikasinya sendiri, Firebase menggunakan method swizzling yang memungkinkan penggantian suatu metode dengan metode lainnya untuk melampirkan penangannya sendiri sebagai tambahan dari penangan yang telah diimplementasikan.

Library Firebase Invites, Dynamic Links, dan Cloud Messaging harus melampirkan penangan ke delegasi aplikasi menggunakan method swizzling. Jika Anda menggunakan salah satu library ini, pada waktu pemuatan, Firebase akan mengidentifikasi kelas AppDelegate Anda dan mengganti metode yang diperlukan padanya, dan mengikat callback ke implementasi metode yang telah ada.

Penyiapan untuk Android

Prasyarat

Menyiapkan aplikasi di Firebase console

Waktunya menambahkan Firebase ke aplikasi Anda. Untuk melakukannya, Anda memerlukan project Firebase dan file konfigurasi Firebase untuk aplikasi Anda.

Untuk membuat project Firebase:

  1. Buka Firebase console.

  2. Klik Tambahkan project, lalu pilih atau masukkan Nama project.

    • Jika Anda memiliki project Google yang terkait dengan aplikasi Anda, pilih project tersebut dari menu dropdown Nama project.
    • Jika Anda belum memiliki project Google, masukkan Nama project baru.
  3. (Opsional) Edit Project ID.

    Firebase menetapkan ID unik ke project Firebase Anda secara otomatis. ID ini ditampilkan di layanan Firebase yang tersedia untuk publik, misalnya:

    • URL Realtime Database default — your-project-id.firebaseio.com
    • Nama bucket Cloud Storage default — your-project-id.appspot.com
    • Subdomain Hosting default — your-project-id.firebaseapp.com
  4. Ikuti langkah-langkah penyiapan yang tersisa di Firebase console, lalu klik Buat project (atau Tambahkan Firebase, jika Anda menggunakan project Google yang sudah ada).

Firebase menyediakan resource untuk project Firebase Anda secara otomatis. Proses ini biasanya perlu waktu beberapa menit. Setelah selesai, Anda akan dibawa ke halaman ringkasan untuk project Firebase Anda di Firebase console.

Setelah memiliki project, Anda dapat menambahkan aplikasi Android ke dalamnya:

  1. Klik Tambahkan Firebase ke aplikasi Android dan ikuti langkah-langkah penyiapannya. Jika Anda mengimpor project Google yang sudah ada, prosesnya dapat terjadi secara otomatis dan Anda dapat langsung mendownload file konfigurasi.

  2. Saat diminta, masukkan nama paket aplikasi Anda. Anda harus memasukkan nama paket yang digunakan oleh aplikasi Anda, yang hanya dapat dilakukan jika aplikasi tersebut ditambahkan ke project Firebase Anda.

  3. Tambahkan file konfigurasi Android Firebase ke aplikasi Anda:

    1. Klik Download google-services.json untuk mendapatkan file konfigurasi Android Firebase Anda (google-services.json).

      Anda dapat mendownload file konfigurasi Android Firebase lagi kapan saja.

    2. Pindahkan file konfigurasi Anda ke direktori yang sama dengan file build.gradle tingkat root Anda.

  4. Setelah Anda menambahkan kode inisialisasi, jalankan aplikasi untuk mengirimkan verifikasi ke Firebase console bahwa Anda telah berhasil menginstal Firebase.

Menambahkan Firebase C++ SDK ke aplikasi

  1. Download Firebase C++ SDK. Ekstrak file di tempat yang mudah dijangkau.

  2. Tambahkan lokasi Firebase C++ SDK ke file gradle.properties Anda:

    systemProp.firebase_cpp_sdk.dir=~/your_local_firebase_sdk_dir
    
  3. Tambahkan lokasi Android NDK ke file local.properties Anda:

    ndk.dir=~/your_local_ndk_dir
    
  4. Tambahkan dependensi apa pun ke file app/build.gradle Anda. (Lihat bagian dependensi untuk detailnya.)

  5. Sekarang Anda sudah bisa membuat project yang didukung oleh Firebase dengan menjalankan build.gradle dari Android Studio. Selesai!

Dependensi

Fitur Firebase memiliki dependensi yang berbeda-beda. Sertakan semua dependensi yang diperlukan ke bagian dependensi di file app/build.gradle.

Analytics

libfirebase_analytics.a
libfirebase_app.a
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.google.firebase:firebase-analytics:16.3.0'
implementation 'com.google.android.gms:play-services-base:16.1.0'
AdMob

libfirebase_admob.a
libfirebase_app.a
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.google.firebase:firebase-ads:17.1.3'
Cloud Messaging

libfirebase_messaging.a
libfirebase_app.a
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.google.firebase:firebase-messaging:17.3.4'
implementation 'com.google.android.gms:play-services-base:16.1.0'
Authentication

libfirebase_auth.a
libfirebase_app.a
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.google.firebase:firebase-auth:16.1.0'
implementation 'com.google.android.gms:play-services-base:16.1.0'
Realtime Database

libfirebase_database.a
libfirebase_app.a
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.google.firebase:firebase-database:16.0.6'
implementation 'com.google.android.gms:play-services-base:16.1.0'
Cloud Functions

libfirebase_functions.a
libfirebase_app.a
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.google.firebase:firebase-functions:16.1.3'
implementation 'com.google.android.gms:play-services-base:16.1.0'
Dynamic Links

libfirebase_dynamic_links.a
libfirebase_app.a
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.google.firebase:firebase-invites:16.1.0'
implementation 'com.google.android.gms:play-services-base:16.1.0'
Invites

libfirebase_invites.a
libfirebase_app.a
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.google.firebase:firebase-invites:16.1.0'
implementation 'com.google.android.gms:play-services-base:16.1.0'
Remote Config

libfirebase_remote_config.a
libfirebase_app.a
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.google.firebase:firebase-config:16.3.0'
implementation 'com.google.android.gms:play-services-base:16.1.0'
Storage

libfirebase_storage.a
libfirebase_app.a
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.google.firebase:firebase-storage:16.0.5'
implementation 'com.google.android.gms:play-services-base:16.1.0'

Informasi Tambahan

Sistem Dengan Build Kustom

Saat ini kami menyediakan generate_xml_from_google_services_json.py untuk mengonversi google-services.json ke resource .xml agar dapat disertakan ke dalam aplikasi. Skrip ini menerapkan transformasi yang sama dengan yang dilakukan oleh plugin Google Play Services Gradle saat membuat aplikasi Android. Pengguna yang tidak menggunakan Gradle (misalnya ndk-build, makefiles, Visual Studio, dsb.) bisa menggunakan skrip ini untuk melakukan pembuatan resource string secara otomatis.

ProGuard

Berbagai sistem build Android menggunakan ProGuard untuk build di mode Rilis untuk mengurangi ukuran aplikasi dan melindungi kode sumber Java. Jika menggunakan ProGuard, Anda harus menambahkan file di libs/android/*.pro yang sesuai dengan library Firebase C++ yang digunakan di konfigurasi ProGuard.

Misalnya, dengan Gradle, build.gradle akan berisi:

android {
  [...other stuff...]
  buildTypes {
    release {
      minifyEnabled true
      proguardFile getDefaultProguardFile('your-project-proguard-config.txt')
      proguardFile file(project.ext.firebase_cpp_sdk_dir + "/libs/android/app.pro")
      proguardFile file(project.ext.firebase_cpp_sdk_dir + "/libs/android/analytics.pro")
      [...and so on, for each Firebase C++ library you are using.]
    }
  }
}

Memerlukan layanan Google Play

Banyak library Firebase C++ memerlukan layanan Google Play di perangkat Android pengguna. Jika library Firebase C++ menampilkan kInitResultFailedMissingDependency saat inisialisasi, artinya layanan Google Play tidak tersedia pada perangkat (layanan perlu diupdate, diaktivasi ulang, diperbaiki izinnya, dsb.) dan library Firebase tersebut tidak dapat digunakan hingga masalah ini diselesaikan.

Anda bisa mencari tahu alasan layanan Google Play tidak tersedia (dan mencoba memperbaikinya) menggunakan fungsi di google_play_services/availability.h.

Library Firebase C++ Mana yang memerlukan layanan Google Play?
Analytics Tidak perlu
AdMob Tidak perlu (biasanya)
Cloud Messaging Perlu
Authentication Perlu
Dynamic Links Perlu
Invites Perlu
Remote Config Perlu
Realtime Database Wajib
Cloud Functions Wajib
Storage Perlu

Catatan untuk AdMob dan layanan Google Play

Sebagian besar versi Google Mobile Ads SDK untuk Android bisa bekerja dengan baik tanpa layanan Google Play. Namun, jika Anda menggunakan dependensi com.google.android.gms:play-services-ads-lite, bukan dependensi com.google.firebase:firebase-ads standar yang tercantum di atas, layanan Google Play harus ada dalam kasus spesifik tersebut.

Inisialisasi AdMob hanya akan menampilkan kInitResultFailedMissingDependency saat layanan Google Play tidak tersedia dan saat Anda menggunakan com.google.android.gms:play-services-ads-lite.

Implementasi alur kerja desktop (fitur Beta)

Saat Anda membuat aplikasi, sering kali lebih mudah untuk menguji aplikasi Anda di platform desktop terlebih dahulu. Kemudian, Anda bisa menerapkan dan melakukan pengujian di perangkat selama proses development. Untuk membantu alur kerja ini, kami menyediakan beberapa fitur Firebase C++ SDK untuk mendukung platform desktop:

Fitur Desktop Library
library Firebase inti libfirebase_app.a
Authentication libfirebase_auth.a
Realtime Database libfirebase_database.a
Cloud Functions libfirebase_functions.a
Remote Config libfirebase_remote_config.a
Cloud Storage libfirebase_storage.a

Library desktop lainnya merupakan implementasi stub (non-fungsional), yang disediakan untuk memudahkan Anda ketika membuat aplikasi untuk Windows, OS X, dan Linux, agar Anda tidak perlu mengompilasi kode secara bersyarat saat menargetkan desktop juga.

Penyiapan project desktop

Untuk menggunakan dukungan alur kerja desktop, Anda harus sudah menyiapkan project Android atau iOS di Firebase console.

Jika Anda memiliki project Android, cukup gunakan file google-services.json di desktop.

Jika Anda memiliki project iOS dan tidak ingin membuat project Android, Anda dapat menggunakan skrip Python generate_xml_from_google_services_json.py --plist yang disertakan untuk mengonversi file GoogleService-Info.plist menjadi file google-services-desktop.json .

Secara default, saat aplikasi Anda menginisialisasi, Firebase akan mencari file bernama google-services.json atau google-services-desktop.json di direktori saat ini. Pastikan bahwa salah satu file ini ada atau panggil AppOptions::LoadFromJsonConfig() sebelum memulai Firebase untuk menentukan data konfigurasi JSON secara langsung.

Library Windows

Untuk Windows, versi library yang disediakan tergantung pada apakah project Anda sedang dibuat dalam mode 32-bit (x86) atau 64-bit (x64), lingkungan Windows waktu proses mana yang Anda gunakan (Multithreaded /MT atau Multithreaded DLL /MD), dan apakah Anda menargetkan Release atau Debug.

Library yang disediakan telah diuji menggunakan Visual Studio 2015 dan 2017. Saat membuat aplikasi desktop C++ di Windows, Anda harus menautkan library SDK Windows berikut (baca dokumentasi kompilator untuk informasi lebih lanjut):

Library Firebase C++ Dependensi library Windows SDK
Authentication advapi32, ws2_32, crypt32
Realtime Database advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Cloud Functions advapi32, ws2_32, crypt32
Remote Config advapi32, ws2_32, crypt32
Storage advapi32, ws2_32, crypt32

Library OS X

Untuk OS X (Darwin), versi library hanya disediakan untuk platform 64-bit (x86_64). Framework juga disediakan untuk kenyamanan Anda.

Library yang tersedia telah diuji menggunakan Xcode 8.3.3 dan 9.2. Ketika membuat aplikasi desktop C++ di OS X, Anda harus menghubungkan library sistem pthread, framework sistem OS X CoreFoundation dan Security (baca dokumentasi kompilator untuk informasi lebih lanjut).

Library Linux

Untuk Linux, versi library disediakan untuk platform 32-bit (i386) dan 64-bit (x86_64).

Library yang tersedia telah diuji menggunakan GCC 4.8.0, GCC 7.2.0, dan Clang 5.0 di Ubuntu. Ketika membangun aplikasi desktop C++ di Linux, Anda harus menghubungkan library sistem pthread (baca dokumentasi kompilator untuk informasi lebih lanjut). Saat membuat dengan GCC 5 atau yang lebih baru, Anda perlu menentukan -D_GLIBCXX_USE_CXX11_ABI=0.

Catatan tentang dukungan desktop Firebase C++

Dukungan desktop Firebase C++ SDK adalah fitur Beta dan ditujukan untuk penggunaan alur kerja hanya selama pengembangan aplikasi Anda, bukan untuk kode pengiriman publik.

Desktop Realtime Database

Realtime Database Desktop SDK menggunakan REST untuk mengakses database Anda. Oleh karena itu, Anda harus mendeklarasikan indeks yang Anda gunakan dengan Query::OrderByChild() di Desktop; jika tidak, listener Anda akan gagal.

Kirim masukan tentang...

Butuh bantuan? Kunjungi halaman dukungan kami.