C++ sağlayan Firebase C++ SDK'larımızla C++ oyunlarınızı güçlendirin. en üst düzeye çıktı.
Firebase'e hiçbir şey yazmak zorunda kalmadan tamamen C++ kodunuzdan erişin platformda yerel kod. Firebase SDK'sı ayrıca dile özgü birçok dili, Firebase tarafından kullanılan deyimler, C++ geliştiricilerine daha tanıdık gelecektir.
Firebase ile oyunlarınızı güçlendirme hakkında daha fazla bilgi için Firebase oyunları sayfası.
Firebase'i C++ projenize zaten eklediniz mi? Şunu kullandığınızdan emin olun: Firebase C++ SDK'sının en son sürümü.
Ön koşullar
Tercih ettiğiniz düzenleyiciyi veya IDE'yi (ör. Android Studio, IntelliJ) yükleyin, veya VS Code.
Android SDK'sını edinin.
Projenizin şu gereklilikleri karşıladığından emin olun:
API düzeyi 19'u hedefler (KitKat) veya üzeri
Gradle kullanır ve yapılandırılmıştır: CMake
Uygulamanızı çalıştırmak için fiziksel bir cihaz ayarlayın veya bir emülatör kullanın.
Emülatörler Google Play'de bir emülatör resmi kullanmanız gerekir.
Bazı C++ kitaplıkları için istemcide Google Play Hizmetleri gereklidir cihaz; şu sayfayı inceleyin: liste bu sayfada yer alır.
Google Hesabınızla Firebase'de oturum açın hesap.
2. Adım: Firebase projesi oluşturun
Firebase'i C++ projenize ekleyebilmek için öncelikle bir Firebase oluşturmanız gerekir projenize bağlayacağınızdan emin olun. Ziyaret edin: Şu konular hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlama: Firebase projeleri.
3. adım: Uygulamanızı Firebase'e kaydedin
Firebase'i Android uygulamanızda kullanmak için, uygulamanızı Firebase projesi. Uygulamanızı kaydetme işlemi genellikle "ekleme" olarak adlandırılır uygulamanızı belirler.
Firebase konsoluna gidin.
Projeye genel bakış sayfasının ortasındaki Android simgesini tıklayın (
) veya kurulum iş akışını başlatmak için Uygulama ekle'yi tıklayın.Uygulamanızın paket adını Android paket adı alanına girin.
ziyaret edin.(İsteğe bağlı) Diğer uygulama bilgilerini girin: Uygulama takma adı ve SHA-1 imza sertifikası hatalarını ayıkla.
Uygulamayı kaydet'i tıklayın.
4. Adım: Firebase yapılandırma dosyasını ekleyin
Firebase Android sürümünüzü edinmek için google-services.json'u indir'i tıklayın. yapılandırma dosyası.
C++ projenizi IDE'de açın, ardından yapılandırma dosyanızı projenize ekleyin:
Gradle derlemeleri: Yapılandırma dosyanızı üst düzey
build.gradle
dosyasıdır.Diğer derleme sistemleri — Bkz. Aşağıdaki özel derleme sistemleri Android Dizesi Kaynakları.
(Yalnızca Gradle derlemeleri) C++ projenizde Firebase hizmetlerini etkinleştirmek için: google-services'i ekleyin eklenti üst düzey
build.gradle
dosyanıza ekleyin.Google Hizmetleri Gradle eklentisini içerecek kurallar ekleyin. Lütfen Google'ın Maven deposuna da sahip.
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 // ... } }
Google Services Gradle eklentisini uygulayın:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
Firebase konsolunda görevleri ayarlama işlemini tamamladınız. Şuna devam edin: Aşağıda Firebase C++ SDK'larını ekleyin.
5. Adım: Firebase C++ SDK'larını ekleyin
Bu bölümdeki adımlar, desteklenen Firebase'in nasıl ekleneceğine ilişkin bir örnektir. Firebase C++ projesi.
Firebase C++ SDK'sını indirin, ardından SDK'yı uygun bir yerde sıkıştırılmış dosyayı açın.
Firebase C++ SDK'sı platforma özel değildir ancak aşağıdakileri içerir: kullanabilirsiniz.
Projenizin
gradle.properties
dosyasında sıkıştırılmış SDK:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
Projenizin
settings.gradle
dosyasına aşağıdaki içeriği ekleyin: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"
Modülü (uygulama düzeyinde) Gradle dosyanıza (genellikle
app/build.gradle
) daha fazla bilgi edineceksiniz.
. Şunu dahil et: kitaplık bağımlılıkları seçmeniz gerekir.Analytics etkin
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 etkinleştirilmedi
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 }
Projenizin
CMakeLists.txt
dosyasına aşağıdaki içeriği ekleyin.
. Şunu dahil et: şu kitap için kitaplıklar: uygulamanızda kullanmak istediğiniz Firebase ürünlerini seçin.Analytics etkin
# 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 etkinleştirilmedi
# 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}")
Tüm bağımlıların gerekli sürümlere sahip olduğundan emin olmak için uygulamanızı senkronize edin.
Analytics eklentisini eklediyseniz Firebase'e doğrulama göndermek için uygulamanızı çalıştırın Firebase'i başarıyla entegre ettiğinizden emin olun. Aksi takdirde doğrulama adımını ele alalım.
Cihaz günlüklerinizde, başlatma işleminin gerçekleştirildiği Firebase doğrulaması gösterilir tamamlandı. Uygulamanızı ağ erişimi olan bir emülatörde çalıştırdıysanız Firebase konsolunda, uygulama bağlantınızın tamamlandığı bildirilir.
Hepsi bu kadar. C++ uygulamanız Firebase'i kullanacak şekilde kaydedildi ve yapılandırıldı kullanıma sunuyoruz.
Kullanılabilen kitaplıklar
C++ Firebase kitaplıkları hakkında daha fazla bilgiyi şurada bulabilirsiniz: referans belgeleri ve açık kaynak SDK'mızda GitHub'da sürüm oluşturabilirsiniz.
Android için kullanılabilen kitaplıklar (CMake kullanarak)
Apple platformları için C++ kitaplıklarının Apple platformlarında listelendiğini unutmayın. (iOS+) sürümünün yüklü olması gerekir.
Firebase ürünü | Kitaplık referansları ( firebaseCpp.dependencies build.gradle dosya için) |
Kitaplık referansları ( firebase_libs CMakeLists.txt dosya için) |
---|---|---|
AdMob | admob |
firebase_admob
(gerekli) firebase_analytics (zorunlu) firebase_app
|
Analytics | analytics |
firebase_analytics
(gerekli) firebase_app
|
App Check | appCheck |
firebase_app_check
(gerekli) firebase_app
|
Authentication | auth |
firebase_auth
(gerekli) firebase_app
|
Cloud Firestore | firestore |
firebase_firestore
(gerekli) firebase_auth (zorunlu) firebase_app
|
Cloud Functions | functions |
firebase_functions
(gerekli) firebase_app
|
Cloud Messaging | messaging |
firebase_messaging
(önerilen) firebase_analytics (zorunlu) firebase_app
|
Cloud Storage | storage |
firebase_storage
(gerekli) firebase_app
|
Dynamic Links | dynamicLinks |
firebase_dynamic_links
(önerilen) firebase_analytics (zorunlu) firebase_app
|
Realtime Database | database |
firebase_database
(gerekli) firebase_app
|
Remote Config | remoteConfig |
firebase_remote_config
(önerilen) firebase_analytics (zorunlu) firebase_app
|
Mobil cihaz kurulumu için ek bilgiler
NDK kilitlenme raporlarını al
Firebase Crashlytics, Android kullanan uygulamalar için kilitlenme raporlamayı destekler. yerel kitaplıklar var. Daha fazla bilgi edinmek için bkz. Android NDK kilitlenme raporlarını alın.
Özel derleme sistemleri
Firebase, generate_xml_from_google_services_json.py
komut dosyasını sağlayarak
google-services.json
öğesini, ekleyebileceğiniz .xml
kaynağa dönüştürün
akılda kalıcı bir yolunu sunar. Bu komut dosyası Google Play'deki komut dosyasıyla aynı dönüşümü
hizmetleri Gradle eklentisidir.
Gradle kullanarak derleme yapmıyorsanız (örneğin, ndk-build, makefiles, Visual Studio vb.) kullanarak içerik oluşturma sürecini otomatikleştirmek için bu komut dosyasını Android Dizesi Kaynaklar.
ProGuard
Birçok Android derleme sistemi, Şuradaki derlemeler için ProGuard: Uygulama boyutlarını küçültmek ve Java kaynak kodunu korumak için bırakma modu.
ProGuard kullanıyorsanız dosyaları libs/android/*.pro
klasörüne eklemeniz gerekir.
ProGuard'ınızda kullandığınız Firebase C++ kitaplıklarına karşılık gelir
yapılandırma.
Örneğin, Gradle ile Google Analytics kullanıyorsanız
build.gradle
dosyanız şöyle görünür:
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 } } }
Google Play hizmetleri şartı
Çoğu Firebase C++ kitaplığı gerekir
Google Play Hizmetleri
istemcinin Android cihazında olmalıdır. Firebase C++ kitaplığı döndürülürse
kInitResultFailedMissingDependency
Google Play Hizmetleri, Google Play Store'da kullanılamaz.
(yani güncellenmesi, yeniden etkinleştirilmesi ve izin
sabit vb.) belirtin. Firebase kitaplığı,
düzeltildiğinden emin olun.
Google Play Hizmetleri'nin istemci cihazda neden kullanılamadığını öğrenebilirsiniz
(ve bunu düzeltmeye çalışmak için)
google_play_services/availability.h
.
Aşağıdaki tabloda, bir istemcide Google Play Hizmetleri'nin gerekli olup olmadığı listelenmiştir. bir cihaz ekler.
Firebase C++ Kitaplığı | İstemci cihazında Google Play Hizmetleri gerekli mi? |
---|---|
AdMob | Zorunlu değil (genellikle) |
Analytics | Zorunlu değil |
Authentication | Zorunlu |
Cloud Firestore | Zorunlu |
Cloud Functions | Zorunlu |
Cloud Messaging | Zorunlu |
Cloud Storage | Zorunlu |
Dynamic Links | Zorunlu |
Realtime Database | Zorunlu |
Remote Config | Zorunlu |
AdMob ve Google Play hizmetleri
Android için Google Mobile Ads SDK'sının çoğu sürümü düzgün çalışabilir
istemci cihazında Google Play hizmetleri olmadan. Ancak
com.google.android.gms:play-services-ads-lite
bağımlılığı
yukarıda listelenen standart com.google.firebase:firebase-ads
bağımlılığı, Google Play Hizmetleri
gerekir.
AdMob başlatma işlemi yalnızca kInitResultFailedMissingDependency
sonucunu döndürür
şunların her ikisi de doğru olduğunda:
- Google Play Hizmetleri istemci cihazda kullanılamıyor.
com.google.android.gms:play-services-ads-lite
kullanıyorsunuz.
Masaüstü iş akışı oluşturma (beta)
Oyun geliştirirken oyununuzu masaüstünde test etmek genellikle çok daha kolaydır önce mobil cihazlarda dağıtıp test etmek, daha sonra geliştirme aşamasında bunları mobil cihazlara dağıtmak ve test etmektir. Alıcı: yardımcı oluyorum. şurada çalışabilen Firebase C++ SDK'sının alt kümesidir: Windows, macOS, Linux ve C++ düzenleyicisinden yararlanabilirsiniz.
Masaüstü iş akışları için aşağıdakileri tamamlamanız gerekir:
- CMake için C++ projenizi yapılandırın.
- Firebase projesi oluşturma
- Uygulamanızı (iOS veya Android) Firebase'e kaydetme
- Mobil platform Firebase yapılandırma dosyası ekleme
Firebase yapılandırma dosyasının masaüstü sürümünü oluşturun:
Android
google-services.json
dosyasını eklediyseniz: Firebase bu mobil dosyayı bulur ve daha sonra masaüstü Firebase yapılandırma dosyası oluşturur (google-services-desktop.json
).iOS
GoogleService-Info.plist
dosyasını eklediyseniz - Çalıştırmadan önce uygulamanız gerekiyorsa bu mobil dosyayı bir masaüstü Firebase'e dönüştürmeniz gerekir yapılandırma dosyası. Dosyayı dönüştürmek için aynı dizininiGoogleService-Info.plist
dosyanız olarak kullanın:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
Bu masaüstü yapılandırma dosyası, girdiğiniz C++ proje kimliğini içerir Firebase konsolu kurulum iş akışını uygulayın. Ziyaret edin: Firebase Projelerini Anlama inceleyebilirsiniz.
Firebase SDK'larını C++ projenize ekleyin.
Aşağıdaki adımlar, destekleyen Firebase ürününü adımları uygulayın. Bu örnekte, Firebase Authentication ve Firebase Realtime Database.
FIREBASE_CPP_SDK_DIR
ortam değişkeninizi şu konuma ayarlayın: çıkartılmış Firebase C++ SDK'sı.Projenizin
CMakeLists.txt
dosyasına aşağıdaki içeriği ekleyin: Bu kitapla ilgili kitaplıklar da dahil olmak üzere Firebase ürünlerini seçin. Örneğin, Firebase Authentication ve 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}")
C++ uygulamanızı çalıştırın.
Kullanılabilir kitaplıklar (masaüstü)
Firebase C++ SDK'sı masaüstü iş akışı desteği içeriyor kullanarak Firebase'in belirli kısımlarının kullanılabilmesini sağlar. .
Firebase ürünü | Kitaplık referansları (CMake kullanarak) |
---|---|
App Check |
firebase_app_check
(gerekli) firebase_app
|
Authentication |
firebase_auth
(gerekli) firebase_app
|
Cloud Firestore |
firebase_firestore firebase_auth firebase_app
|
Cloud Functions |
firebase_functions
(gerekli) firebase_app
|
Cloud Storage |
firebase_storage
(gerekli) firebase_app
|
Realtime Database |
firebase_database
(gerekli) firebase_app
|
Remote Config |
firebase_remote_config
(gerekli) firebase_app
|
Firebase, kalan masaüstü kitaplıklarını taslak olarak sağlar (işlevsel değildir) uygulamaları geliştiriyoruz. Bu nedenle, masaüstünü hedeflemek için kodu koşullu olarak derlemeniz gerekmez.
Realtime Database masaüstü
Masaüstü için Realtime Database SDK'sı, veritabanınıza erişmek için REST kullandığından
aşağıdaki kriterlere uyan endeksleri tanımlayın:
Query::OrderByChild()
ile kullanmayın. Aksi takdirde dinleyicileriniz başarısız olur.
Masaüstü kurulumu için ek bilgiler
Windows kitaplıkları
Windows için kitaplık sürümleri aşağıdakilere göre sağlanır:
- Derleme platformu: 32 bit (x86) - 64 bit (x64) mod
- Windows çalışma zamanı ortamı: Çok iş parçacıklı / MT - Çok iş parçacıklı DLL /MD
- Hedef: Sürüm ve Hata Ayıklama
Aşağıdaki kitaplıkların Visual Studio 2015 ve 2017 kullanılarak test edildiğini unutmayın.
Windows'da C++ masaüstü uygulamaları oluştururken aşağıdaki Windows SDK'sını bağlayın kullanabilirsiniz. Daha fazla bilgi için derleyici dokümanlarınıza bakın. ekleyebilirsiniz.
Firebase C++ Kitaplığı | Windows SDK kitaplığı bağımlılıkları |
---|---|
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 |
macOS kitaplıkları
MacOS (Darwin) için, 64 bit (x86_64) için kitaplık sürümleri sağlanır platformu. Size kolaylık sağlamak için çerçeveler de sunulur.
macOS kitaplıklarının Xcode kullanılarak test edildiğini unutmayın 13.3.1.
macOS'te C++ masaüstü uygulamaları oluştururken aşağıdakini projenize bağlayın:
pthread
sistem kitaplığıCoreFoundation
macOS sistem çerçevesiFoundation
macOS sistem çerçevesiSecurity
macOS sistem çerçevesiGSS
macOS sistem çerçevesiKerberos
macOS sistem çerçevesiSystemConfiguration
macOS sistem çerçevesi
Daha fazla bilgi için derleyici dokümanlarınıza bakın.
Linux kitaplıkları
Linux için 32 bit (i386) ve 64 bit (x86_64) için kitaplık sürümleri sağlanır. platformlar.
Linux kitaplıklarının GCC 4.8.0, GCC 7.2.0 ve Ubuntu'da Clang 5.0.
Linux'ta C++ masaüstü uygulamaları oluştururken pthread
sistem kitaplığını şuraya bağlayın:
akılda kalıcı bir yolunu sunar. Daha fazla bilgi için derleyici dokümanlarınıza bakın. Eğer
GCC 5 veya sonraki bir sürümle derlerseniz -D_GLIBCXX_USE_CXX11_ABI=0
değerini tanımlayın.
Sonraki adımlar
Örnek Firebase uygulamalarını keşfedin.
Açık kaynak SDK'yı şurada keşfedin: GitHub'ı tıklayın.
Uygulamanızı kullanıma sunmaya hazırlanma:
- Bütçe ayarlama uyarılar Google Cloud konsolunda projeniz için.
- Kullanımı ve faturalandırmayı izleme kontrol paneli projenizin genel durumunu görmek için Firebase konsolunda birden fazla Firebase hizmetinde nasıl kullanıldığını gösterir.
- Firebase lansmanı kontrol listesini inceleyin.