Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Tambahkan Firebase ke proyek C++ Anda

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Perkuat game C++ Anda dengan Firebase C++ SDK kami yang menyediakan antarmuka C++ selain Firebase untuk iOS dan Android.

Akses Firebase sepenuhnya dari kode C++ Anda, tanpa harus menulis kode asli platform apa pun. Firebase SDK juga menerjemahkan banyak idiom khusus bahasa yang digunakan oleh Firebase ke dalam antarmuka yang lebih familiar bagi developer C++.

Cari tahu informasi lebih lanjut tentang memperkuat game Anda dengan Firebase di halaman game Firebase kami.

Sudah menambahkan Firebase ke proyek C++ Anda? Pastikan Anda menggunakan versi terbaru dari Firebase C++ SDK .

Prasyarat

  • Instal editor atau IDE pilihan Anda, seperti Android Studio, IntelliJ, atau VS Code.

  • Dapatkan SDK Android .

  • Pastikan proyek Anda memenuhi persyaratan berikut:

  • Siapkan perangkat fisik atau gunakan emulator untuk menjalankan aplikasi Anda.

    • Emulator harus menggunakan image emulator dengan Google Play.

    • Untuk beberapa pustaka C++, layanan Google Play diperlukan di perangkat klien; tinjau daftar di halaman ini.

  • Masuk ke Firebase menggunakan akun Google Anda.

Langkah 2 : Buat proyek Firebase

Sebelum dapat menambahkan Firebase ke proyek C++, Anda perlu membuat proyek Firebase untuk terhubung ke proyek C++. Kunjungi Memahami Proyek Firebase untuk mempelajari lebih lanjut tentang proyek Firebase.

Langkah 3 : Daftarkan aplikasi Anda dengan Firebase

Untuk menggunakan Firebase di aplikasi Android, Anda harus mendaftarkan aplikasi ke proyek Firebase. Mendaftarkan aplikasi Anda sering disebut "menambahkan" aplikasi Anda ke proyek Anda.

  1. Buka konsol Firebase .

  2. Di tengah halaman ikhtisar proyek, klik ikon Android ( ) atau Tambahkan aplikasi untuk meluncurkan alur kerja penyiapan.

  3. Masukkan nama paket aplikasi Anda di bidang nama paket Android .

  4. (Opsional) Masukkan informasi aplikasi lain: Nama panggilan aplikasi dan Sertifikat penandatanganan Debug SHA-1 .

  5. Klik Daftar aplikasi .

Langkah 4 : Tambahkan file konfigurasi Firebase

  1. Klik Unduh google-services.json untuk mendapatkan file konfigurasi Firebase Android Anda.

  2. Buka proyek C++ Anda di IDE, lalu tambahkan file konfigurasi ke proyek Anda:

    • Gradle build — Tambahkan file konfigurasi Anda ke direktori yang sama dengan file build.gradle tingkat atas Anda.

    • Sistem build lainnya — Lihat Sistem build kustom di bawah ini untuk menghasilkan Android String Resources .

  3. (Hanya build Gradle) Untuk mengaktifkan layanan Firebase di proyek C++ Anda, tambahkan plugin google-services ke file build.gradle tingkat atas Anda.

    1. Tambahkan aturan untuk menyertakan plugin Gradle Layanan Google. Periksa apakah 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.3.14'  // Google Services plugin
            implementation 'com.google.android.gms:18.1.0'
          }
        }
      
        allprojects {
          // ...
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
            // ...
          }
        }
      
    2. 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 {
          // ...
        }
      
  4. Anda telah selesai menyiapkan tugas di Firebase console. Lanjutkan untuk Menambahkan Firebase C++ SDK di bawah.

Langkah 5 : Tambahkan Firebase C++ SDK

Langkah-langkah di bagian ini adalah contoh cara menambahkan produk Firebase yang didukung ke proyek Firebase C++ Anda.

  1. Unduh Firebase C++ SDK , lalu unzip SDK di tempat yang nyaman.

    Firebase C++ SDK tidak khusus platform, tetapi berisi pustaka khusus platform.

  2. Di file gradle.properties proyek Anda, tentukan lokasi SDK yang tidak di-zip:

    systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
    
  3. Ke file settings.gradle proyek 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"
    
  4. Ke file Gradle modul (tingkat aplikasi) Anda (biasanya app/build.gradle ), tambahkan konten berikut.
    Sertakan dependensi library untuk produk Firebase yang ingin Anda gunakan di aplikasi Anda.

    Analisis 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
    }
    
  5. Ke file CMakeLists.txt proyek Anda, tambahkan konten berikut.
    Sertakan library untuk produk Firebase yang ingin Anda gunakan di aplikasi Anda.

    Analisis 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}")
    
  6. Sinkronkan aplikasi Anda untuk memastikan bahwa semua dependensi memiliki versi yang diperlukan.

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

    Log perangkat Anda akan menampilkan verifikasi Firebase bahwa inisialisasi selesai. Jika Anda menjalankan aplikasi pada emulator yang memiliki akses jaringan, Firebase console akan memberi tahu Anda bahwa koneksi aplikasi Anda telah selesai.

Anda sudah siap! Aplikasi C++ Anda terdaftar dan dikonfigurasi untuk menggunakan layanan Firebase.

Perpustakaan yang tersedia

Pelajari lebih lanjut tentang library C++ Firebase dalam dokumentasi referensi dan rilis SDK open-source kami di GitHub .

Pustaka yang tersedia untuk Android (menggunakan CMake)

Perhatikan bahwa pustaka C++ untuk iOS terdaftar pada versi iOS dari halaman penyiapan ini .

produk Firebase Referensi perpustakaan
( firebaseCpp.dependencies
untuk file build.gradle )
Referensi perpustakaan
( firebase_libs
untuk file CMakeLists.txt )
AdMob admob firebase_admob
(wajib) firebase_analytics
(wajib) firebase_app
Analitik analytics firebase_analytics
(wajib) firebase_app
Autentikasi auth firebase_auth
(wajib) firebase_app
Cloud Firestore firestore firebase_firestore
(wajib) firebase_auth
(wajib) firebase_app
Fungsi Cloud functions firebase_functions
(wajib) firebase_app
Perpesanan Awan messaging firebase_messaging
(disarankan) firebase_analytics
(wajib) firebase_app
Penyimpanan awan storage firebase_storage
(wajib) firebase_app
Tautan Dinamis dynamicLinks firebase_dynamic_links
(disarankan) firebase_analytics
(wajib) firebase_app
Basis Data Waktu Nyata database firebase_database
(wajib) firebase_app
Konfigurasi Jarak Jauh remoteConfig firebase_remote_config
(disarankan) firebase_analytics
(wajib) firebase_app

Informasi tambahan untuk penyiapan seluler

Dapatkan laporan kerusakan NDK

Firebase Crashlytics mendukung pelaporan kerusakan untuk aplikasi yang menggunakan pustaka asli Android. Untuk mempelajari lebih lanjut, lihat Mendapatkan laporan kerusakan Android NDK .

Sistem pembuatan khusus

Firebase menyediakan skrip generate_xml_from_google_services_json.py untuk mengonversi google-services.json ke sumber daya .xml yang dapat Anda sertakan dalam proyek Anda. Skrip ini menerapkan transformasi yang sama seperti yang dilakukan plugin Gradle layanan Google Play saat membuat aplikasi Android.

Jika Anda tidak membangun menggunakan Gradle (misalnya, Anda menggunakan ndk-build, makefiles, Visual Studio, dll.), Anda dapat menggunakan skrip ini untuk mengotomatiskan pembuatan Android String Resources .

ProGuard

Banyak sistem build Android menggunakan ProGuard untuk build dalam mode Rilis untuk mengecilkan 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 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 pustaka Firebase C++ mengharuskan layanan Google Play berada di perangkat Android klien. Jika pustaka Firebase C++ mengembalikan kInitResultFailedMissingDependency pada inisialisasi, itu berarti layanan Google Play tidak tersedia di perangkat klien (artinya perlu diperbarui, diaktifkan kembali, izin diperbaiki, dll.). Pustaka Firebase tidak dapat digunakan hingga situasi di perangkat klien diperbaiki.

Anda dapat mengetahui 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 pada perangkat klien untuk setiap produk Firebase yang didukung.

Pustaka Firebase C++ Layanan Google Play diperlukan pada perangkat klien?
AdMob Tidak wajib (biasanya)
Analitik Tidak dibutuhkan
Autentikasi Yg dibutuhkan
Cloud Firestore Yg dibutuhkan
Fungsi Cloud Yg dibutuhkan
Perpesanan Awan Yg dibutuhkan
Penyimpanan awan Yg dibutuhkan
Tautan Dinamis Yg dibutuhkan
Basis Data Waktu Nyata Yg dibutuhkan
Konfigurasi Jarak Jauh Yg dibutuhkan

Layanan AdMob dan Google Play

Sebagian besar versi SDK Iklan Seluler Google 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 , alih-alih dependensi com.google.firebase:firebase-ads standar yang tercantum di atas, layanan Google Play diperlukan .

Inisialisasi AdMob hanya akan kInitResultFailedMissingDependency jika kedua hal berikut ini benar:

  • 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, seringkali jauh lebih mudah untuk menguji game Anda di platform desktop terlebih dahulu, lalu menerapkan dan mengujinya di perangkat seluler nanti dalam pengembangan. Untuk mendukung alur kerja ini, kami menyediakan subset Firebase C++ SDK yang dapat berjalan di Windows, macOS, Linux, dan dari dalam editor C++.

  1. Untuk alur kerja desktop, Anda harus menyelesaikan hal berikut:

    1. Konfigurasikan proyek C++ Anda untuk CMake.
    2. Buat proyek Firebase
    3. Daftarkan aplikasi Anda (iOS atau Android) dengan Firebase
    4. Tambahkan file konfigurasi Firebase platform seluler
  2. Buat versi desktop dari file konfigurasi Firebase:

    • Jika Anda menambahkan file google-services.json Android — Saat Anda menjalankan aplikasi, Firebase akan menemukan file seluler ini, kemudian secara otomatis membuat file konfigurasi Firebase desktop ( google-services-desktop.json ).

    • Jika Anda menambahkan file iOS GoogleService-Info.plist — Sebelum menjalankan aplikasi, Anda perlu mengonversi file seluler ini ke file konfigurasi Firebase desktop . Untuk mengonversi file, 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 ID proyek C++ yang Anda masukkan di alur kerja penyiapan konsol Firebase. Kunjungi Memahami Proyek Firebase untuk mempelajari lebih lanjut tentang file konfigurasi.

  3. Tambahkan Firebase SDK ke proyek C++ Anda.

    Langkah-langkah di bawah ini berfungsi sebagai contoh cara menambahkan produk Firebase yang didukung ke proyek C++ Anda. Dalam contoh ini, kita berjalan melalui penambahan Firebase Authentication dan Firebase Realtime Database.

    1. Setel variabel lingkungan FIREBASE_CPP_SDK_DIR Anda ke lokasi Firebase C++ SDK yang tidak di-zip.

    2. Ke file CMakeLists.txt proyek Anda, tambahkan konten berikut, termasuk pustaka 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.

Pustaka yang tersedia (desktop)

Firebase C++ SDK menyertakan dukungan alur kerja desktop untuk subset fitur, yang memungkinkan bagian tertentu dari Firebase untuk digunakan dalam versi desktop mandiri di Windows, macOS, dan Linux.

produk Firebase Referensi perpustakaan (menggunakan CMake)
Autentikasi firebase_auth
(wajib) firebase_app
Cloud Firestore firebase_firestore
firebase_auth
firebase_app
Fungsi Cloud firebase_functions
(wajib) firebase_app
Penyimpanan awan firebase_storage
(wajib) firebase_app
Basis Data Waktu Nyata firebase_database
(wajib) firebase_app
Konfigurasi Jarak Jauh firebase_remote_config
(wajib) firebase_app

Firebase menyediakan pustaka desktop yang tersisa sebagai implementasi rintisan (non-fungsional) untuk kenyamanan saat membuat untuk Windows, macOS, dan Linux. Oleh karena itu, Anda tidak perlu mengkompilasi kode secara kondisional untuk menargetkan desktop.

Desktop Basis Data Waktu Nyata

SDK Realtime Database untuk desktop menggunakan REST untuk mengakses database Anda, jadi Anda harus mendeklarasikan indeks yang Anda gunakan dengan Query::OrderByChild() di desktop atau listener Anda akan gagal.

Informasi tambahan untuk pengaturan desktop

Perpustakaan Windows

Untuk Windows, versi pustaka disediakan berdasarkan berikut ini:

  • Bangun platform: mode 32-bit (x86) vs 64-bit (x64)
  • Lingkungan runtime Windows: Multithreaded / MT vs Multithreaded DLL /MD
  • Target: Rilis vs Debug

Perhatikan bahwa pustaka berikut diuji menggunakan Visual Studio 2015 dan 2017.

Saat membuat aplikasi desktop C++ di Windows, tautkan pustaka Windows SDK berikut ke proyek Anda. Konsultasikan dokumentasi kompiler Anda untuk informasi lebih lanjut.

Pustaka Firebase C++ Ketergantungan perpustakaan Windows SDK
Autentikasi advapi32, ws2_32, crypt32
Cloud Firestore advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
Fungsi Cloud advapi32, ws2_32, crypt32, rpcrt4, ole32
Penyimpanan awan advapi32, ws2_32, crypt32
Basis Data Waktu Nyata advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Konfigurasi Jarak Jauh advapi32, ws2_32, crypt32, rpcrt4, ole32

perpustakaan macOS

Untuk macOS (Darwin), versi pustaka disediakan untuk platform 64-bit (x86_64). Kerangka kerja juga disediakan untuk kenyamanan Anda.

Perhatikan bahwa pustaka macOS telah diuji menggunakan Xcode 13.3.1.

Saat membuat aplikasi desktop C++ di macOS, tautkan yang berikut ke proyek Anda:

  • perpustakaan sistem pthread
  • Kerangka sistem macOS CoreFoundation
  • Kerangka kerja sistem macOS Foundation
  • Kerangka sistem Security macOS
  • Kerangka kerja sistem macOS GSS
  • Kerangka kerja sistem macOS Kerberos
  • SystemConfiguration kerangka sistem macOS

Konsultasikan dokumentasi kompiler Anda untuk informasi lebih lanjut.

perpustakaan Linux

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

Perhatikan bahwa library Linux diuji menggunakan GCC 4.8.0, GCC 7.2.0, dan Clang 5.0 di Ubuntu.

Saat membuat aplikasi desktop C++ di Linux, tautkan pustaka sistem pthread ke proyek Anda. Konsultasikan dokumentasi kompiler Anda untuk informasi lebih lanjut. Jika Anda membangun dengan GCC 5 atau lebih baru, tentukan -D_GLIBCXX_USE_CXX11_ABI=0 .

Langkah selanjutnya