Firebase SDK'larının üzerinde bir C++ arayüzü sağlayan Firebase C++ SDK'larımızla C++ oyunlarınızı güçlendirin.
Firebase'e platformda yerel kod yazmanıza gerek kalmadan tamamen C++ kodunuzdan erişin. Firebase SDK ayrıca Firebase tarafından kullanılan birçok dile özgü deyimi C++ geliştiricilerinin daha aşina olduğu bir arayüze çevirir.
Firebase oyunları sayfamızdan oyunlarınızı Firebase ile güçlendirme hakkında daha fazla bilgi edinin.
Firebase'i C++ projenize zaten eklediniz mi? Firebase C++ SDK'nın en son sürümünü kullandığınızdan emin olun.
Önkoşullar
Android Studio, IntelliJ veya VS Code gibi tercih ettiğiniz düzenleyiciyi veya IDE'yi yükleyin.
Android SDK'yı edinin.
Projenizin şu gereksinimleri karşıladığından emin olun:
API düzeyi 19 (KitKat) veya üstünü hedefler
Gradle kullanır ve CMake ile yapılandırılır
Uygulamanızı çalıştırmak için fiziksel bir cihaz kurun veya bir emülatör kullanın.
Emülatörlerin Google Play'de bir emülatör resmi kullanması gerekir.
Bazı C++ kitaplıkları için istemci cihazda Google Play hizmetleri gereklidir; bu sayfadaki listeyi inceleyin.
Google hesabınızı kullanarak Firebase'de oturum açın .
2. Adım : Firebase projesi oluşturun
Firebase'i C++ projenize ekleyebilmeniz için önce C++ projenize bağlanacak bir Firebase projesi oluşturmanız gerekir. Firebase projeleri hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlayın sayfasını ziyaret edin.
3. Adım : Uygulamanızı Firebase'e kaydedin
Firebase'i Android uygulamanızda kullanmak için uygulamanızı Firebase projenize kaydetmeniz gerekir. Uygulamanızı kaydetmeye genellikle uygulamanızı projenize "eklemek" denir.
Firebase konsoluna gidin.
Kurulum iş akışını başlatmak için projeye genel bakış sayfasının ortasındaki Android simgesine (
) veya Uygulama ekle öğesine tıklayın.Android paket adı alanına uygulamanızın paket adını girin.
Paket adı, uygulamanızı cihazda ve Google Play Store'da benzersiz bir şekilde tanımlar.
Paket adına genellikle uygulama kimliği denir.
Uygulamanızın paket adını modülünüzde (uygulama düzeyi) Gradle dosyasında bulun; genellikle
app/build.gradle
(örnek paket adı:com.yourcompany.yourproject
).Paket adı değerinin büyük/küçük harfe duyarlı olduğunu ve Firebase projenize kaydedildikten sonra bu Firebase Android uygulaması için değiştirilemeyeceğini unutmayın.
(İsteğe bağlı) Diğer uygulama bilgilerini girin: Uygulama takma adı ve Hata Ayıklama imzalama sertifikası SHA-1 .
Uygulama takma adı : Firebase konsolunda yalnızca sizin görebileceğiniz dahili, kullanışlı bir tanımlayıcı
İmzalama sertifikasında hata ayıklama SHA-1 : Firebase Authentication ( Google Oturum Açma veya telefon numarasıyla oturum açma kullanılırken) ve Firebase Dynamic Links için bir SHA-1 karma değeri gereklidir.
Uygulamayı kaydet'i tıklayın.
4. Adım : Firebase yapılandırma dosyasını ekleyin
Firebase Android yapılandırma dosyanızı edinmek için Google-services.json'u İndir'i tıklayın.
Firebase yapılandırma dosyası, projeniz için benzersiz ancak gizli olmayan tanımlayıcılar içerir. Bu yapılandırma dosyası hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlayın sayfasını ziyaret edin.
Firebase yapılandırma dosyanızı istediğiniz zaman tekrar indirebilirsiniz.
Yapılandırma dosyası adına
(2)
gibi ek karakterler eklenmediğinden emin olun.
C++ projenizi bir 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
dosyanızla aynı dizine ekleyin.Diğer derleme sistemleri — Android Dize Kaynakları oluşturmak için aşağıdaki Özel derleme sistemlerine bakın.
(Yalnızca Gradle derlemeleri) C++ projenizde Firebase hizmetlerini etkinleştirmek için google-services eklentisini üst düzey
build.gradle
dosyanıza ekleyin.Google Services Gradle eklentisini içerecek kurallar ekleyin. Google'ın Maven deposuna da sahip olduğunuzdan emin olun.
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.0' // Google Services plugin implementation 'com.google.android.gms:18.2.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 kurulum görevlerini tamamladınız. Aşağıdaki Firebase C++ SDK'larını eklemeye devam edin.
5. Adım : Firebase C++ SDK'larını ekleyin
Bu bölümdeki adımlar, desteklenen Firebase ürünlerini Firebase C++ projenize nasıl ekleyeceğinize dair bir örnektir.
Firebase C++ SDK'yı indirin ve ardından SDK'yı uygun bir yere açın.
Firebase C++ SDK'sı platforma özgü değildir ancak platforma özgü kitaplıklar içerir.
Projenizin
gradle.properties
dosyasında sıkıştırılmış SDK'nın konumunu belirtin: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ünüzün (uygulama düzeyi) Gradle dosyasına (genellikle
app/build.gradle
), aşağıdaki içeriği ekleyin.
Uygulamanızda kullanmak istediğiniz Firebase ürünlerine ilişkin kitaplık bağımlılıklarını ekleyin.Analiz 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 }
Analiz 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.
Uygulamanızda kullanmak istediğiniz Firebase ürünlerine ait kitaplıkları ekleyin.Analiz 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}")
Analiz 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ılıkların gerekli sürümlere sahip olduğundan emin olmak için uygulamanızı senkronize edin.
Analytics'i eklediyseniz Firebase'i başarıyla entegre ettiğinize dair doğrulamayı Firebase'e göndermek için uygulamanızı çalıştırın. Aksi takdirde doğrulama adımını atlayabilirsiniz.
Cihaz günlükleriniz, başlatmanın tamamlandığını gösteren Firebase doğrulamasını gösterecektir. Uygulamanızı ağ erişimi olan bir emülatörde çalıştırdıysanız Firebase konsolu , uygulama bağlantınızın tamamlandığını size bildirir.
Hazırsınız! C++ uygulamanız Firebase hizmetlerini kullanacak şekilde kaydedildi ve yapılandırıldı.
Mevcut kütüphaneler
Referans belgelerinde ve GitHub'daki açık kaynaklı SDK sürümümüzde C++ Firebase kitaplıkları hakkında daha fazla bilgi edinin.
Android için mevcut kütüphaneler (CMake kullanılarak)
Apple platformlarına yönelik C++ kitaplıklarının bu kurulum sayfasının Apple platformları (iOS+) sürümünde listelendiğini unutmayın.
Firebase ürünü | Kütüphane referansları ( firebaseCpp.dependencies build.gradle dosyası için) | Kütüphane referansları ( firebase_libs CMakeLists.txt dosyası için) |
---|---|---|
AdMob | admob | firebase_admob (gerekli) firebase_analytics (gerekli) firebase_app |
Analitik | analytics | firebase_analytics (gerekli) firebase_app |
Uygulama Kontrolü | appCheck | firebase_app_check (gerekli) firebase_app |
Kimlik doğrulama | auth | firebase_auth (gerekli) firebase_app |
Bulut Firestore | firestore | firebase_firestore (gerekli) firebase_auth (gerekli) firebase_app |
Bulut İşlevleri | functions | firebase_functions (gerekli) firebase_app |
Bulut Mesajlaşma | messaging | firebase_messaging (önerilir) firebase_analytics (gerekli) firebase_app |
Bulut depolama | storage | firebase_storage (gerekli) firebase_app |
Dinamik Bağlantılar | dynamicLinks | firebase_dynamic_links (önerilir) firebase_analytics (gerekli) firebase_app |
Gerçek Zamanlı Veritabanı | database | firebase_database (gerekli) firebase_app |
Uzaktan Yapılandırma | remoteConfig | firebase_remote_config (önerilir) firebase_analytics (gerekli) firebase_app |
Mobil kurulum için ek bilgiler
NDK kilitlenme raporlarını alın
Firebase Crashlytics, Android yerel kitaplıklarını kullanan uygulamalar için kilitlenme raporlamasını destekler. Daha fazla bilgi edinmek için bkz. Android NDK kilitlenme raporlarını alma .
Özel yapım sistemler
Firebase google-services.json
projenize ekleyebileceğiniz .xml
kaynaklarına dönüştürmek için generate_xml_from_google_services_json.py
komut dosyasını sağlar. Bu komut dosyası, Google Play hizmetleri Gradle eklentisinin Android uygulamaları oluştururken gerçekleştirdiği dönüşümün aynısını uygular.
Gradle kullanarak derleme yapmıyorsanız (örneğin, ndk-build, makefiles, Visual Studio vb. kullanıyorsanız), Android String Resources'ın oluşturulmasını otomatikleştirmek için bu betiği kullanabilirsiniz.
ProGuard
Birçok Android derleme sistemi, uygulama boyutlarını küçültmek ve Java kaynak kodunu korumak amacıyla Yayın modundaki derlemeler için ProGuard'ı kullanır.
ProGuard kullanıyorsanız, ProGuard yapılandırmanızda kullandığınız Firebase C++ kitaplıklarına karşılık gelen dosyaları libs/android/*.pro
dosyasına eklemeniz gerekir.
Örneğin Gradle'da Google Analytics kullanıyorsanız build.gradle
dosyanız şöyle görünecektir:
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 gereksinimi
Çoğu Firebase C++ kitaplığı, Google Play hizmetlerinin istemcinin Android cihazında olmasını gerektirir. Bir Firebase C++ kitaplığı, başlatma sırasında kInitResultFailedMissingDependency
değerini döndürürse, bu, Google Play hizmetlerinin istemci cihazda mevcut olmadığı anlamına gelir (yani güncellenmesi, yeniden etkinleştirilmesi, izinlerin düzeltilmesi vb. gerektiği anlamına gelir). Firebase kütüphanesi, istemci cihazdaki durum düzeltilene kadar kullanılamaz.
google_play_services/availability.h
adresindeki işlevleri kullanarak Google Play hizmetlerinin istemci cihazda neden kullanılamadığını öğrenebilir (ve düzeltmeye çalışabilirsiniz).
Aşağıdaki tabloda, desteklenen her Firebase ürünü için istemci cihazda Google Play hizmetlerinin gerekli olup olmadığı listelenmektedir.
Firebase C++ Kitaplığı | İstemci cihazında Google Play hizmetleri gerekli mi? |
---|---|
AdMob | Gerekli değil (genellikle) |
Analitik | Gerekli değil |
Kimlik doğrulama | Gerekli |
Bulut Firestore | Gerekli |
Bulut İşlevleri | Gerekli |
Bulut Mesajlaşma | Gerekli |
Bulut depolama | Gerekli |
Dinamik Bağlantılar | Gerekli |
Gerçek Zamanlı Veritabanı | Gerekli |
Uzaktan Yapılandırma | Gerekli |
AdMob ve Google Play hizmetleri
Android için Google Mobile Ads SDK'sının çoğu sürümü, istemci cihazda Google Play hizmetleri olmadan düzgün şekilde çalışabilir. Ancak yukarıda listelenen standart com.google.firebase: com.google.firebase:firebase-ads
com.google.android.gms:play-services-ads-lite
bağımlılığını kullanıyorsanız Google Play hizmetleri gereklidir .
AdMob'un başlatılması yalnızca aşağıdakilerin her ikisi de doğru olduğunda kInitResultFailedMissingDependency
değerini döndürür:
- İstemci cihazında Google Play hizmetleri kullanılamıyor.
-
com.google.android.gms:play-services-ads-lite
kullanıyorsunuz.
Masaüstü iş akışı ayarlama ( beta )
Bir oyun oluşturduğunuzda, oyununuzu önce masaüstü platformlarda test etmek, ardından geliştirme aşamasında mobil cihazlara dağıtmak ve test etmek genellikle çok daha kolaydır. Bu iş akışını desteklemek için Windows, macOS, Linux üzerinde ve C++ düzenleyicisinden çalışabilen Firebase C++ SDK'larının bir alt kümesini sağlıyoruz.
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 kaydedin
- Mobil platform Firebase yapılandırma dosyası ekleyin
Firebase yapılandırma dosyasının masaüstü sürümünü oluşturun:
Android
google-services.json
dosyasını eklediyseniz — Uygulamanızı çalıştırdığınızda, Firebase bu mobil dosyayı bulur ve ardından otomatik olarak bir masaüstü Firebase yapılandırma dosyası (google-services-desktop.json
) oluşturur.iOS
GoogleService-Info.plist
dosyasını eklediyseniz — Uygulamanızı çalıştırmadan önce bu mobil dosyayı bir masaüstü Firebase yapılandırma dosyasına dönüştürmeniz gerekir. Dosyayı dönüştürmek içinGoogleService-Info.plist
dosyanızla aynı dizinde aşağıdaki komutu çalıştırın:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
Bu masaüstü yapılandırma dosyası, Firebase konsolu kurulum iş akışına girdiğiniz C++ proje kimliğini içerir. Yapılandırma dosyaları hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlayın sayfasını ziyaret edin.
Firebase SDK'larını C++ projenize ekleyin.
Aşağıdaki adımlar, desteklenen herhangi bir Firebase ürününü C++ projenize nasıl ekleyeceğinize örnek teşkil etmektedir. Bu örnekte Firebase Authentication ve Firebase Realtime Database ekleme adımlarını izleyeceğiz.
FIREBASE_CPP_SDK_DIR
ortam değişkeninizi sıkıştırılmış Firebase C++ SDK'nın konumuna ayarlayın.Projenizin
CMakeLists.txt
dosyasına, kullanmak istediğiniz Firebase ürünlerine ait kitaplıklar da dahil olmak üzere aşağıdaki içeriği ekleyin. Örneğin, Firebase Authentication ve Firebase Realtime Database'i kullanmak için:# 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, bir dizi özellik için masaüstü iş akışı desteği içerir ve Firebase'in belirli bölümlerinin Windows, macOS ve Linux'taki bağımsız masaüstü yapılarında kullanılmasına olanak tanır.
Firebase ürünü | Kitaplık referansları (CMake kullanılarak) |
---|---|
Uygulama Kontrolü | firebase_app_check (gerekli) firebase_app |
Kimlik doğrulama | firebase_auth (gerekli) firebase_app |
Bulut Firestore | firebase_firestore firebase_auth firebase_app |
Bulut İşlevleri | firebase_functions (gerekli) firebase_app |
Bulut depolama | firebase_storage (gerekli) firebase_app |
Gerçek Zamanlı Veritabanı | firebase_database (gerekli) firebase_app |
Uzaktan Yapılandırma | firebase_remote_config (gerekli) firebase_app |
Firebase, Windows, macOS ve Linux için derleme yaparken kolaylık sağlamak amacıyla kalan masaüstü kitaplıklarını saplama (işlevsiz) uygulamalar olarak sağlar. Bu nedenle, masaüstünü hedeflemek için kodu koşullu olarak derlemenize gerek yoktur.
Gerçek Zamanlı Veritabanı masaüstü
Masaüstü için Realtime Database SDK, veritabanınıza erişmek için REST'i kullanır, bu nedenle masaüstünde Query::OrderByChild()
ile kullandığınız dizinleri bildirmeniz gerekir, 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 dayalı olarak sağlanır:
- Platform oluşturma: 32 bit (x86) ve 64 bit (x64) modu
- Windows çalışma zamanı ortamı: Çok iş parçacıklı / MT ve Ç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'ta C++ masaüstü uygulamaları oluştururken aşağıdaki Windows SDK kitaplıklarını projenize bağlayın. Daha fazla bilgi için derleyicinizin belgelerine bakın.
Firebase C++ Kitaplığı | Windows SDK kitaplığı bağımlılıkları |
---|---|
Uygulama Kontrolü | advapi32, ws2_32, crypt32 |
Kimlik doğrulama | advapi32, ws2_32, crypt32 |
Bulut Firestore | advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32 |
Bulut İşlevleri | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
Bulut depolama | advapi32, ws2_32, crypt32 |
Gerçek Zamanlı Veritabanı | advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv |
Uzaktan Yapılandırma | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
macOS kitaplıkları
MacOS (Darwin) için, 64 bit (x86_64) platformuna yönelik kitaplık sürümleri sağlanmıştır. Size kolaylık sağlamak için çerçeveler de sağlanmıştır.
MacOS kitaplıklarının Xcode 13.3.1 kullanılarak test edildiğini unutmayın.
MacOS'ta C++ masaüstü uygulamaları oluştururken aşağıdakileri projenize bağlayın:
-
pthread
sistem kütüphanesi -
CoreFoundation
macOS sistem çerçevesi -
Foundation
macOS sistem çerçevesi -
Security
macOS sistem çerçevesi -
GSS
macOS sistem çerçevesi -
Kerberos
macOS sistem çerçevesi -
SystemConfiguration
macOS sistem çerçevesi
Daha fazla bilgi için derleyicinizin belgelerine bakın.
Linux kütüphaneleri
Linux için, 32 bit (i386) ve 64 bit (x86_64) platformlara yönelik kitaplık sürümleri sağlanır.
Linux kitaplıklarının Ubuntu'da GCC 4.8.0, GCC 7.2.0 ve Clang 5.0 kullanılarak test edildiğini unutmayın.
Linux'ta C++ masaüstü uygulamaları oluştururken pthread
sistem kitaplığını projenize bağlayın. Daha fazla bilgi için derleyicinizin belgelerine bakın. GCC 5 veya üzeri bir sürümle derleme yapıyorsanız -D_GLIBCXX_USE_CXX11_ABI=0
tanımlayın.
Sonraki adımlar
Örnek Firebase uygulamalarını keşfedin.
GitHub'daki açık kaynak SDK'yı keşfedin.
Uygulamanızı başlatmaya hazırlanın:
- Google Cloud Console'da projeniz için bütçe uyarıları ayarlayın.
- Projenizin birden fazla Firebase hizmetindeki kullanımının genel bir resmini elde etmek için Firebase konsolundaki Kullanım ve faturalandırma kontrol panelini izleyin.
- Firebase başlatma kontrol listesini inceleyin.