Firebase SDK'larının üzerine C++ arayüzü sağlayan Firebase C++ SDK'larımızla C++ oyunlarınızı güçlendirin.
Platforma özgü kod yazmak zorunda kalmadan Firebase'e tamamen C++ kodunuzdan erişin. Firebase SDK'sı, Firebase tarafından kullanılan birçok dile özgü deyimi C++ geliştiricilerine daha aşina bir arayüze de çevirir.
Oyunlarınızı Firebase ile güçlendirme hakkında daha fazla bilgi edinmek için Firebase oyunlar sayfamızı ziyaret edin.
Firebase C++ SDK'sının hangi Firebase ürünlerini desteklediğiniFirebase'i C++ projenize zaten eklediyseniz Firebase C++ SDK'sının en yeni sürümünü kullandığınızdan emin olun.
Ön koşullar
Android Studio, IntelliJ veya VS Code gibi tercih ettiğiniz düzenleyiciyi ya da IDE'yi yükleyin.
Android SDK'sını edinin.
Projenizin aşağıdaki koşulları karşıladığından emin olun:
API düzeyi 21'i (Lollipop) veya üstünü hedefliyor
Gradle'i 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örler, Google Play ile bir emülatör resmi kullanmalıdır.
Bazı C++ kitaplıkları için istemci cihazda Google Play Hizmetleri gerekir. 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 eklemeden önce, C++ projenize bağlanacak bir Firebase projesi oluşturmanız gerekir. Firebase projeleri hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlama başlıklı makaleyi inceleyin.
Firebase projesi oluşturma
-
Firebase konsolunda Proje ekle'yi tıklayın.
-
Mevcut bir Google Cloud projesine Firebase kaynağı eklemek için proje adını girin veya açılır menüden seçin.
-
Yeni bir proje oluşturmak için istediğiniz proje adını girin. İsterseniz proje adının altında görüntülenen proje kimliğini de düzenleyebilirsiniz.
-
-
İstenirse Firebase şartlarını inceleyip kabul edin.
-
Devam'ı tıklayın.
-
(İsteğe bağlı) Projeniz için Google Analytics'yi ayarlayın. Bu, aşağıdaki Firebase ürünlerinden herhangi birini kullanırken optimum bir deneyim yaşamanızı sağlar:
Mevcut bir Google Analytics hesabını seçin veya yeni hesap oluşturun.
Yeni bir hesap oluşturursanız Analytics raporlama konumunuzu seçin, ardından projeniz için veri paylaşım ayarlarını ve Google Analytics şartlarını kabul edin.
-
Proje oluştur'u (veya mevcut bir Google Cloud projesi kullanıyorsanız Firebase ekle'yi) tıklayın.
Firebase, Firebase projeniz için kaynakları otomatik olarak sağlar. İşlem tamamlandığında Firebase konsolunda Firebase projenizin genel bakış sayfasına yönlendirilirsiniz.
3. Adım: Uygulamanızı Firebase'e kaydedin
Firebase'i Android uygulamanızda kullanmak için uygulamanızı Firebase projenize kaydetmeniz gerekir. Uygulamanızı kaydetme işlemine genellikle uygulamanızı projenize "ekleme" denir.
Firebase konsoluna gidin.
Kurulum iş akışını başlatmak için projeye genel bakış sayfasının ortasından Android simgesini (
) veya Uygulama ekle'yi tıklayın.Android paketi adı alanına uygulamanızın paket adını girin.
Paket adı nedir ve nerede bulunur?
Paket adı, uygulamanızı cihazda ve Google Play Store'da benzersiz bir şekilde tanımlar.
Paket adı genellikle uygulama kimliği olarak adlandırılır.
Uygulamanızın paket adını modülünüzün (uygulama düzeyinde) Gradle dosyasında bulun. Bu dosya genellikle
app/build.gradle
(örnek paket adı:com.yourcompany.yourproject
) dosyasıdır.Paket adı değerinin büyük/küçük harfe duyarlı olduğunu ve Firebase projenize kaydedilen 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ı ve Hata ayıklama imza sertifikası SHA-1 Firebase'de nasıl kullanılır?
Uygulama takma adı: Yalnızca Firebase konsolunda size görünen dahili, kolaylık tanımlayıcı
Hata ayıklama imza sertifikası SHA-1: Firebase Authentication (Google ile oturum açma veya telefon numarası ile oturum açma kullanılırken) ve Firebase Dynamic Links için SHA-1 karması gerekir.
Uygulamayı kaydet'i tıklayın.
4. Adım: Firebase yapılandırma dosyasını ekleyin
Firebase Android yapılandırma dosyanızı almak için google-services.json dosyasını indir'i tıklayın.
Bu yapılandırma dosyası hakkında bilmeniz gerekenler
Firebase yapılandırma dosyasında projenize özgü, gizli olmayan tanımlayıcılar bulunur. Bu yapılandırma dosyası hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlama başlıklı makaleyi inceleyin.
Firebase yapılandırma dosyanızı dilediğiniz zaman tekrar indirebilirsiniz.
Yapılandırma dosyasına
(2)
gibi ek karakterler eklenmediğinden emin olun.
C++ projenizi bir IDE'de açın ve 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ını oluşturmak için aşağıdaki Özel derleme sistemleri bölümüne bakın.
(Yalnızca Gradle derlemeleri) C++ projenizde Firebase hizmetlerini etkinleştirmek için üst düzey
build.gradle
dosyanıza google-services eklentisini ekleyin.Google Hizmetleri 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.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 Hizmetleri 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 işlemlerini tamamladınız. Aşağıdaki Firebase C++ SDK'larını ekleme bölümüne geçin.
5. Adım: Firebase C++ SDK'larını ekleyin
Bu bölümdeki adımlar, desteklenen Firebase ürünlerini Firebase C++ projenize ekleme örneğidir.
Firebase C++ SDK'sını indirin, ardından SDK'yı uygun bir konumda arşivden çıkarı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ılmamış 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 (uygulama düzeyi) Gradle dosyanıza (genellikle
app/build.gradle
) aşağıdaki içeriği ekleyin.
Uygulamanızda kullanmak istediğiniz Firebase ürünlerinin kitaplık bağımlılıklarını ekleyin.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 }
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ünlerinin kitaplıklarını ekleyin.# 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}")
# 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ılarda gerekli sürümlerin bulunduğundan emin olmak için uygulamanızı senkronize edin.
Analytics 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üklerinizde, ilklendirmenin tamamlandığını belirten Firebase doğrulaması gösterilir. 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ı bildirir.
Artık hazırsınız. C++ uygulamanız, Firebase hizmetlerini kullanacak şekilde kayıtlı ve yapılandırılmış olmalıdır.
(isteğe bağlı alternatif) SDK eklemek için ndk-build'i kullanma
- Android NDK v10d veya sonraki bir sürüme sahip olduğunuzdan emin olun.
Firebase C++ SDK'sını indirin, ardından SDK'yı uygun bir konumda arşivden çıkarın.
Firebase C++ SDK'sı platforma özel değildir ancak platforma özel kitaplıklar içerir.
-
local.properties
dosyanızı açıp şunları yapın:firebase_cpp_sdk.dir
değişkenini, sıkıştırılmamış Firebase C++ SDK'sının konumuna ayarlayın.ndk.dir
değişkenini Android NDK'nın konumuna ayarlayın.
-
Gradle'ın yerleşik ndkBuild desteğini kullanmak için üst düzey dizininizde bir
jni
dizin oluşturun, ardından aşağıdakimake
dosyalarını oluşturun.-
Aşağıdakileri içeren bir
jni/Application.mk
dosyası oluşturun:APP_PLATFORM:=android-14 NDK_TOOLCHAIN_VERSION=clang APP_ABI:=armeabi-v7a arm64-v8a x86 x86_64 APP_STL:=c++_static APP_MODULES:=android_main APP_CPPFLAGS+=-std=c++11
-
Aşağıdaki içeriği içeren bir
jni/Android.mk
dosyası oluşturun.Kullanmak istediğiniz Firebase ürününe ait kitaplıkları ekleyin. Örneğin, Analytics'ü kullanmak için:
LOCAL_PATH:=$(call my-dir)/.. ifeq ($(FIREBASE_CPP_SDK_DIR),) $(error FIREBASE_CPP_SDK_DIR must specify the Firebase package location.) endif # With Firebase libraries for the selected build configuration (ABI + STL) STL:=$(firstword $(subst _, ,$(APP_STL))) FIREBASE_LIBRARY_PATH:=\ $(FIREBASE_CPP_SDK_DIR)/libs/android/$(TARGET_ARCH_ABI)/$(STL) # The Firebase C++ library `libfirebase_app.a` is required for all Firebase products. include $(CLEAR_VARS) LOCAL_MODULE:=firebase_app LOCAL_SRC_FILES:=$(FIREBASE_LIBRARY_PATH)/libfirebase_app.a LOCAL_EXPORT_C_INCLUDES:=$(FIREBASE_CPP_SDK_DIR)/include include $(PREBUILT_STATIC_LIBRARY) # Include the Firebase library for Google Analytics. # Note: Duplicate this block for each Firebase product that you want # to use in your app, and replace variable values as appropriate. include $(CLEAR_VARS) LOCAL_MODULE:=firebase_analytics LOCAL_SRC_FILES:=$(FIREBASE_LIBRARY_PATH)/libfirebase_analytics.a LOCAL_EXPORT_C_INCLUDES:=$(FIREBASE_CPP_SDK_DIR)/include include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE:=android_main # Reference your project's C++ source files LOCAL_SRC_FILES:=\ $(LOCAL_PATH)/src/common_main.cc \ $(LOCAL_PATH)/src/android/android_main.cc LOCAL_STATIC_LIBRARIES:=\ firebase_analytics \ firebase_app # this library reference must always be listed last LOCAL_WHOLE_STATIC_LIBRARIES:=\ android_native_app_glue LOCAL_C_INCLUDES:=\ $(NDK_ROOT)/sources/android/native_app_glue \ $(LOCAL_PATH)/src LOCAL_LDLIBS:=-llog -landroid -latomic LOCAL_ARM_MODE:=arm LOCAL_LDFLAGS:=-Wl,-z,defs -Wl,--no-undefined include $(BUILD_SHARED_LIBRARY) $(call import-add-path,$(NDK_ROOT)/sources/android) $(call import-module,android/native_app_glue)
-
-
Üst düzey
build.gradle
dosyanızı açıp aşağıdaki adımları uygulayın:-
Kullanmak istediğiniz Firebase ürünlerinin bağımlılıklarını ekleyin. Örneğin, Analytics'ü kullanmak için:
dependencies { implementation 'com.google.firebase:firebase-analytics:21.0.0' }
-
Projenizin,
jni/Android.mk
dosyanızda belirtilen Firebase kitaplıklarını dahil etmek için Gradle'in yerleşik ndk-build desteğini kullanması amacıyla aşağıdaki satırları ekleyin.android { // ... defaultConfig { // ... externalNativeBuild.ndkBuild { arguments "FIREBASE_CPP_SDK_DIR=${project.ext.firebase_cpp_sdk_dir}", "NDK_APPLICTION_MK=jni/Application.mk", sprintf("APP_PLATFORM=android-%d", android.defaultConfig.minSdkVersion.mApiLevel) } } }
-
Android için kullanılabilen kitaplıklar (ndk-build kullanılarak)
Her Firebase ürününün farklı bağımlılıkları vardır. Kullanmak istediğiniz Firebase ürünleri için listelenen tüm bağımlılıkları eklediğinizden emin olun.
Firebase C++ kitaplıklarını (libfirebase_app.a
gibi) üst düzey jni/Android.mk
dosyasına ekleyerek ekleyin. Diğer bağımlılıklara (com.google.firebase:firebase-auth
gibi) üst düzey build.gradle
dosyanıza ekleyin.
Firebase ürünü | Kitaplıklar ve Bağımlılıklar |
---|---|
AdMob |
libfirebase_admob.a (zorunlu) libfirebase_analytics.a (zorunlu) libfirebase_app.a implementation 'com.google.firebase:firebase-ads:19.8.0' (zorunlu) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Analytics |
libfirebase_analytics.a (zorunlu) libfirebase_app.a implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
App Check |
libfirebase_app_check.a (zorunlu) libfirebase_app.a implementation 'com.google.firebase:firebase-appcheck:17.0.0'
|
Authentication |
libfirebase_auth.a (zorunlu) libfirebase_app.a implementation 'com.google.firebase:firebase-auth:21.0.5'
|
Cloud Firestore |
libfirebase_firestore.a (zorunlu) libfirebase_app.a implementation 'com.google.firebase:firebase-firestore:24.1.2'
|
Cloud Functions |
libfirebase_functions.a (zorunlu) libfirebase_app.a implementation 'com.google.firebase:firebase-functions:20.1.0'
|
Cloud Messaging |
libfirebase_messaging.a (önerilen) libfirebase_analytics.a (zorunlu) libfirebase_app.a implementation 'com.google.firebase:firebase-messaging:23.0.5' (önerilen) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Cloud Storage |
libfirebase_storage.a (zorunlu) libfirebase_app.a implementation 'com.google.firebase:firebase-storage:20.0.1'
|
Dynamic Links |
ibfirebase_dynamic_links.a (önerilen) libfirebase_analytics.a (zorunlu) libfirebase_app.a implementation 'com.google.firebase:firebase-dynamic-links:21.0.1' (önerilen) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Realtime Database |
libfirebase_database.a (zorunlu) libfirebase_app.a implementation 'com.google.firebase:firebase-database:20.0.5'
|
Remote Config |
libfirebase_remote_config.a (önerilen) libfirebase_analytics.a (zorunlu) libfirebase_app.a implementation 'com.google.firebase:firebase-config:21.1.0' (önerilen) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Kullanılabilen kitaplıklar
C++ Firebase kitaplıkları hakkında daha fazla bilgiyi referans dokümanlarından ve GitHub'daki açık kaynak SDK sürümümüzden edinebilirsiniz.
Android için kullanılabilen kitaplıklar (CMake kullanılarak)
Apple platformları için C++ kitaplıklarının, bu kurulum sayfasının Apple platformları (iOS+) sürümünde listelendiğini unutmayın.
Firebase ürünü | Kitaplık referansları ( build.gradle dosyası için firebaseCpp.dependencies ) |
Kitaplık referansları ( CMakeLists.txt dosyası için firebase_libs ) |
---|---|---|
AdMob | admob |
firebase_admob (zorunlu) firebase_analytics (zorunlu) firebase_app
|
Analytics | analytics |
firebase_analytics (zorunlu) firebase_app
|
App Check | appCheck |
firebase_app_check (zorunlu) firebase_app
|
Authentication | auth |
firebase_auth (zorunlu) firebase_app
|
Cloud Firestore | firestore |
firebase_firestore (zorunlu) firebase_auth (zorunlu) firebase_app
|
Cloud Functions | functions |
firebase_functions (zorunlu) firebase_app
|
Cloud Messaging | messaging |
firebase_messaging (önerilen) firebase_analytics (zorunlu) firebase_app
|
Cloud Storage | storage |
firebase_storage (zorunlu) firebase_app
|
Dynamic Links | dynamicLinks |
firebase_dynamic_links (önerilen) firebase_analytics (zorunlu) firebase_app
|
Realtime Database | database |
firebase_database (zorunlu) firebase_app
|
Remote Config | remoteConfig |
firebase_remote_config (önerilen) firebase_analytics (zorunlu) firebase_app
|
Mobil kurulum için ek bilgiler
NDK kilitlenme raporlarını alma
Firebase Crashlytics, Android yerel kitaplıklarını kullanan uygulamalar için kilitlenme raporlamasını destekler. Daha fazla bilgi edinmek için Android NDK kilitlenme raporlarını alma başlıklı makaleyi inceleyin.
Özel derleme sistemleri
Firebase, google-services.json
'yi projenize dahil edebileceğ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ü uygular.
Gradle'i kullanarak derleme yapmıyorsanız (örneğin, ndk-build, makefiles, Visual Studio vb. kullanıyorsanız) Android dize kaynaklarının oluşturulmasını otomatikleştirmek için bu komut dosyasını kullanabilirsiniz.
ProGuard
Birçok Android derleme sistemi, uygulama boyutlarını küçültmek ve Java kaynak kodunu korumak için Yayın modunda derlemelerde 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
içine eklemeniz gerekir.
Örneğin, Gradle ile Google Analytics kullanıyorsanız build.gradle
dosyanız şu şekilde 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ığı, istemcinin Android cihazında Google Play Hizmetleri'nin bulunmasını gerektirir. Bir Firebase C++ kitaplığı ilk başlatılırken kInitResultFailedMissingDependency
döndürüyorsa Google Play Hizmetleri istemci cihazda kullanılamıyor demektir (yani güncellenmesi, yeniden etkinleştirilmesi, izinlerinin düzeltilmesi vb. gerekir). İstemci cihazdaki durum düzeltilene kadar Firebase kitaplığı kullanılamaz.
google_play_services/availability.h
içindeki işlevleri kullanarak Google Play Hizmetleri'nin istemci cihazda neden kullanılamadığını öğrenebilir (ve sorunu düzeltmeye çalışabilirsiniz).
Aşağıdaki tabloda, desteklenen her Firebase ürünü için istemci cihazda Google Play Hizmetleri'nin gerekli olup olmadığı listelenmektedir.
Firebase C++ Kitaplığı | İstemci cihazda 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ü, istemci cihazda Google Play Hizmetleri olmadan düzgün şekilde çalışabilir. Ancak yukarıda listelenen standart com.google.firebase:firebase-ads
bağımlılığı yerine com.google.android.gms:play-services-ads-lite
bağımlılığını kullanıyorsanız Google Play Hizmetleri gereklidir.
AdMob başlatma işlemi yalnızca aşağıdaki koşulların ikisi de geçerli olduğunda kInitResultFailedMissingDependency
döndürür:
- Google Play Hizmetleri istemci cihazda kullanılamıyor.
com.google.android.gms:play-services-ads-lite
kullanıyorsanız
Masaüstü iş akışı oluşturma (beta)
Oyun oluştururken genellikle oyununuzu önce masaüstü platformlarda test etmek, ardından geliştirmenin ilerleyen aşamalarında mobil cihazlarda dağıtıp test etmek çok daha kolaydır. Bu iş akışını desteklemek için Windows, macOS, Linux ve C++ düzenleyicisinde çalışabilen Firebase C++ SDK'larının bir alt kümesini sunuyoruz.
Masaüstü iş akışları için aşağıdakileri tamamlamanız gerekir:
- C++ projenizi CMake için 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: 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ı 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ı dizinden 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 konsol 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 Anlama başlıklı makaleyi inceleyin.
C++ projenize Firebase SDK'larını ekleyin.
Aşağıdaki adımlar, desteklenen Firebase ürünlerinin C++ projenize nasıl ekleneceğine dair bir örnektir. Bu örnekte, Firebase Authentication ve Firebase Realtime Database ekleme işlemini adım adım açıklıyoruz.
FIREBASE_CPP_SDK_DIR
ortam değişkeninizi, sıkıştırılmış Firebase C++ SDK'sının konumuna ayarlayın.Projenizin
CMakeLists.txt
dosyasına, kullanmak istediğiniz Firebase ürünlerinin kitaplıkları da dahil olmak üzere aşağıdaki içeriği ekleyin. Örneğin, Firebase Authentication ve Firebase Realtime Database'ü 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 kütüphaneler (masaüstü)
Firebase C++ SDK'sı, bir özellik alt kümesi için masaüstü iş akışı desteği içerir. Bu sayede Firebase'in belirli bölümleri Windows, macOS ve Linux'ta bağımsız masaüstü derlemelerinde kullanılabilir.
Firebase ürünü | Kitaplık referansları (CMake kullanılarak) |
---|---|
App Check |
firebase_app_check (zorunlu) firebase_app
|
Authentication |
firebase_auth (zorunlu) firebase_app
|
Cloud Firestore |
firebase_firestore firebase_auth firebase_app
|
Cloud Functions |
firebase_functions (zorunlu) firebase_app
|
Cloud Storage |
firebase_storage (zorunlu) firebase_app
|
Realtime Database |
firebase_database (zorunlu) firebase_app
|
Remote Config |
firebase_remote_config (zorunlu) firebase_app
|
Firebase, Windows, macOS ve Linux için derleme yaparken kolaylık sağlamak amacıyla kalan masaüstü kitaplıklarını stub (işlevsel olmayan) uygulamalar olarak sağlar. Bu nedenle, masaüstü sürümü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'i kullanır. Bu nedenle, masaüstünde Query::OrderByChild()
ile kullandığınız dizinleri belirtmeniz 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 göre sağlanır:
- Derleme platformu: 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 karşılaştırması
- Hedef: Yayınlama 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 derleyici dokümanlarınızı inceleyin.
Firebase C++ Kitaplığı | Windows SDK kitaplık 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 kütüphaneleri
macOS (Darwin) için kitaplık sürümleri 64 bit (x86_64) platform için sağlanı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'te C++ masaüstü uygulamaları oluştururken aşağıdakileri 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ızı inceleyin.
Linux kitaplıkları
Linux için kitaplık sürümleri 32 bit (i386) ve 64 bit (x86_64) platformlar için 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'da C++ masaüstü uygulamaları oluştururken pthread
sistem kitaplığını projenize bağlayın. Daha fazla bilgi için derleyici dokümanlarınızı inceleyin. GCC 5 veya sonraki bir sürümle derliyorsanız -D_GLIBCXX_USE_CXX11_ABI=0
değerini tanımlayın.
Sonraki adımlar
Örnek Firebase uygulamalarını inceleyin.
GitHub'daki açık kaynak SDK'yı keşfedin.
Uygulamanızı kullanıma sunmaya hazırlanın:
- Google Cloud konsolunda projeniz için bütçe uyarıları ayarlayın.
- Projenizin birden fazla Firebase hizmetindeki kullanımına dair genel bir fikir edinmek için Firebase konsolundaki Kullanım ve faturalandırma kontrol panelini izleyin.
- Firebase lansman kontrol listesini inceleyin.