Ulepsz swoje gry w C++, korzystając z pakietów Firebase C++ SDK, które udostępniają interfejs C++ na bazie pakietów Firebase SDK.
Uzyskaj dostęp do Firebase bezpośrednio z kodu C++, bez konieczności pisania kodu natywnego dla danej platformy. Pakiet SDK Firebase przekształca też wiele idiomów językowych używanych przez Firebase w interfejs bardziej przyjazny deweloperom C++.
Więcej informacji o ulepszaniu gier za pomocą Firebase znajdziesz na stronie z grami Firebase.
Czy Firebase zostało już dodane do projektu C++? Upewnij się, że używasz najnowszej wersji pakietu SDK Firebase C++.
Wymagania wstępne
Zainstaluj preferowany edytor lub IDE, np. Android Studio, IntelliJ lub VS Code.
Pobierz pakiet Android SDK.
Upewnij się, że Twój projekt spełnia te wymagania:
kierowana na poziom API 21 (Lollipop) lub wyższy;
Używa Gradle i jest skonfigurowany za pomocą CMake
Skonfiguruj fizyczne urządzenie lub uruchom aplikację w emulatorze.
Zaloguj się w Firebase, używając konta Google.
Krok 2. Utwórz projekt Firebase
Zanim dodasz Firebase do projektu w C++, musisz utworzyć projekt Firebase, który połączysz z tym projektem. Więcej informacji o projektach Firebase znajdziesz w artykule Projekty Firebase – informacje ogólne.
Tworzenie projektu Firebase
-
W konsoli Firebase kliknij Dodaj projekt.
-
Aby dodać zasoby Firebase do istniejącego projektu Google Cloud, wpisz jego nazwę lub wybierz ją z menu.
-
Aby utworzyć nowy projekt, wpisz jego nazwę. Opcjonalnie możesz też edytować identyfikator projektu wyświetlany pod nazwą projektu.
-
-
Jeśli pojawi się taka prośba, zapoznaj się z warunkami usługi Firebase i je zaakceptuj.
-
Kliknij Dalej.
-
(Opcjonalnie) Skonfiguruj w projekcie Google Analytics, aby optymalnie korzystać z tych usług Firebase:
Wybierz istniejące konto Google Analytics lub utwórz nowe konto.
Jeśli tworzysz nowe konto, wybierz Analyticslokalizację raportowania, a następnie zaakceptuj ustawienia udostępniania danych i zasady Google Analytics dla projektu.
-
Kliknij Utwórz projekt (lub Dodaj Firebase, jeśli używasz istniejącego projektu Google Cloud).
Firebase automatycznie udostępnia zasoby dla Twojego projektu Firebase. Po zakończeniu procesu wyświetli się strona podglądu projektu Firebase w konsoli Firebase.
Krok 3. Zarejestruj aplikację w Firebase
Aby korzystać z Firebase w aplikacji na Androida, musisz ją zarejestrować w projekcie Firebase. Rejestrowanie aplikacji jest często nazywane „dodawaniem” aplikacji do projektu.
Otwórz konsolę Firebase.
W centrum strony „Opis” projektu kliknij ikonę Android (
) lub Dodaj aplikację, aby uruchomić proces konfiguracji.W polu Nazwa pakietu na Androida wpisz nazwę pakietu aplikacji.
Co to jest nazwa pakietu i gdzie ją znaleźć?
Nazwa pakietu jednoznacznie identyfikuje aplikację na urządzeniu i w Sklepie Google Play.
Nazwa pakietu jest często nazywana identyfikatorem aplikacji.
Znajdź nazwę pakietu aplikacji w pliku Gradle modułu (na poziomie aplikacji), zazwyczaj
app/build.gradle
(przykładowa nazwa pakietu:com.yourcompany.yourproject
).Pamiętaj, że wielkość liter w nazwie pakietu jest rozróżniana, a samej nazwy nie można zmienić po zarejestrowaniu aplikacji na Androida w projekcie Firebase.
(Opcjonalnie) Wpisz inne informacje o aplikacji: pseudonim aplikacji i certyfikat podpisywania debugowania SHA-1.
Jak w Firebase są używane pseudonim aplikacji i certyfikat podpisywania na potrzeby debugowania SHA-1?
Pseudonim aplikacji: wewnętrzny identyfikator ułatwiający pracę, widoczny tylko w konsoli Firebase.
Certyfikat SHA-1 do podpisania aplikacji przed debugowaniem: Firebase Authentication (przy użyciu logowania w Google lub logowania z numeru telefonu) wymaga hasza SHA-1.Firebase Dynamic Links
Kliknij Zarejestruj aplikację.
Krok 4. Dodaj plik konfiguracji Firebase
Kliknij Pobierz plik google-services.json, aby pobrać plik konfiguracji Firebase na Androida.
Co musisz wiedzieć o tym pliku konfiguracyjnym?
Plik konfiguracji Firebase zawiera unikalne, ale nie tajne identyfikatory projektu. Więcej informacji o tym pliku konfiguracyjnym znajdziesz w artykule Informacje o projektach Firebase.
W każdej chwili możesz ponownie pobrać plik konfiguracyjny Firebase.
Sprawdź, czy nazwa pliku konfiguracyjnego nie zawiera dodatkowych znaków, np. „
(2)
”.
Otwórz projekt C++ w IDE, a następnie dodaj do niego plik konfiguracji:
Kompilacje Gradle – dodaj plik konfiguracji do tego samego katalogu, w którym znajduje się plik
build.gradle
najwyższego poziomu.Inne systemy kompilacji – aby wygenerować Android String Resources, użyj niestandardowych systemów kompilacji.
(Tylko kompilacje Gradle) Aby włączyć usługi Firebase w projekcie C++, dodaj wtyczkę google-services do najwyższego poziomu pliku
build.gradle
.Dodaj reguły, aby uwzględnić wtyczkę Gradle Usługi Google. Sprawdź też, czy masz repozytorium 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.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 // ... } }
Zastosowanie wtyczki Google Services Gradle:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
Zakończ konfigurowanie w konsoli Firebase. Poniżej dowiedz się więcej o dodawaniu pakietów SDK Firebase C++.
Krok 5. Dodaj pakiety SDK Firebase C++
Kroki opisane w tej sekcji pokazują, jak dodać obsługiwane usługi Firebase do projektu Firebase w C++.
Pobierz pakiet SDK Firebase C++, a potem rozpakuj go w wygodnym miejscu.
Pakiet SDK Firebase C++ nie jest przeznaczony tylko dla jednej platformy, ale zawiera biblioteki dla konkretnych platform.
W pliku
gradle.properties
projektu określ lokalizację rozpakowanego pakietu SDK:systemProp.firebase_cpp_sdk.dir=
full-path-to-SDK Dodaj do pliku
settings.gradle
projektu te informacje: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"
Dodaj do pliku Gradle modułu (na poziomie aplikacji) (zazwyczaj
app/build.gradle
) następujący kod.
Uwzględnij zależność od biblioteki w przypadku usług Firebase, których chcesz używać w aplikacji.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 }
Dodaj do pliku
CMakeLists.txt
projektu te treści.
Uwzględnij biblioteki usług Firebase, których chcesz używać w aplikacji.# 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}")
Zsynchronizuj aplikację, aby wszystkie zależności na pewno miały odpowiednie wersje.
Jeśli dodasz Analytics, uruchom aplikację, aby wysłać do Firebase potwierdzenie, że udało Ci się ją zintegrować z Firebase. W przeciwnym razie możesz pominąć krok weryfikacji.
W logach urządzenia pojawi się weryfikacja Firebase, która potwierdza, że inicjalizacja została zakończona. Jeśli aplikacja została uruchomiona na emulatorze z dostępem do sieci, konsola Firebase powiadomi Cię, że połączenie z aplikacją zostało ustanowione.
Wszystko gotowe. Twoja aplikacja w C++ jest zarejestrowana i skonfigurowana pod kątem korzystania z usług Firebase.
(opcjonalna alternatywa) Dodawanie pakietów SDK za pomocą polecenia ndk-build
- Upewnij się, że masz NDK Androida w wersji 10d lub nowszej.
Pobierz pakiet SDK Firebase C++, a potem rozpakuj go w wygodnym miejscu.
Pakiet SDK Firebase C++ nie jest przeznaczony tylko dla jednej platformy, ale zawiera biblioteki dla konkretnych platform.
-
Otwórz plik
local.properties
, a potem:- Ustaw zmienną
firebase_cpp_sdk.dir
na lokalizację rozpakowanego pakietu SDK Firebase C++. - Ustaw zmienną
ndk.dir
na lokalizację NDK Androida.
- Ustaw zmienną
-
Aby korzystać z wbudowanego w Gradle obsługi ndkBuild, utwórz katalog
jni
w katalogu najwyższego poziomu, a potem utwórz te plikimake
.-
Utwórz plik
jni/Application.mk
z: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
-
Utwórz plik
jni/Android.mk
z podaną niżej treścią.Uwzględnij biblioteki usługi Firebase, której chcesz używać. Aby na przykład użyć funkcji Analytics:
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)
-
-
Otwórz najwyższy poziom pliku
build.gradle
, a potem wykonaj te czynności:-
Dodaj zależność dla usług Firebase, których chcesz używać. Aby na przykład użyć funkcji Analytics:
dependencies { implementation 'com.google.firebase:firebase-analytics:21.0.0' }
-
Dodaj te wiersze, aby Twój projekt używał wbudowanego w Gradle obsługi ndk-build w celu uwzględnienia bibliotek Firebase określonych w pliku
jni/Android.mk
.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) } } }
-
Dostępne biblioteki na Androida (za pomocą ndk-build)
Każda usługa Firebase ma inne zależności. Pamiętaj, aby dodać wszystkie wymienione zależności w przypadku usług Firebase, których chcesz używać.
Dodaj biblioteki Firebase w C++ (np. libfirebase_app.a
), uwzględniając je w pliku najwyższego poziomu jni/Android.mk
. Inne zależności (np. com.google.firebase:firebase-auth
) dodaj do najwyższego poziomu pliku build.gradle
.
Usługa Firebase | Biblioteki i zależność |
---|---|
AdMob |
libfirebase_admob.a (wymagany) libfirebase_analytics.a (wymagany) libfirebase_app.a implementation 'com.google.firebase:firebase-ads:19.8.0' (wymagany) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Analytics |
libfirebase_analytics.a (wymagany) libfirebase_app.a implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
App Check |
libfirebase_app_check.a (wymagany) libfirebase_app.a implementation 'com.google.firebase:firebase-appcheck:17.0.0'
|
Authentication |
libfirebase_auth.a (wymagany) libfirebase_app.a implementation 'com.google.firebase:firebase-auth:21.0.5'
|
Cloud Firestore |
libfirebase_firestore.a (wymagany) libfirebase_app.a implementation 'com.google.firebase:firebase-firestore:24.1.2'
|
Cloud Functions |
libfirebase_functions.a (wymagany) libfirebase_app.a implementation 'com.google.firebase:firebase-functions:20.1.0'
|
Cloud Messaging |
libfirebase_messaging.a (zalecane) libfirebase_analytics.a (wymagany) libfirebase_app.a implementation 'com.google.firebase:firebase-messaging:23.0.5' (zalecane) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Cloud Storage |
libfirebase_storage.a (wymagany) libfirebase_app.a implementation 'com.google.firebase:firebase-storage:20.0.1'
|
Dynamic Links |
ibfirebase_dynamic_links.a (zalecane) libfirebase_analytics.a (wymagany) libfirebase_app.a implementation 'com.google.firebase:firebase-dynamic-links:21.0.1' (zalecane) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Realtime Database |
libfirebase_database.a (wymagany) libfirebase_app.a implementation 'com.google.firebase:firebase-database:20.0.5'
|
Remote Config |
libfirebase_remote_config.a (zalecane) libfirebase_analytics.a (wymagany) libfirebase_app.a implementation 'com.google.firebase:firebase-config:21.1.0' (zalecane) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Dostępne biblioteki
Więcej informacji o bibliotekach Firebase w C++ znajdziesz w dokumentacji referencyjnej oraz w naszej wersji pakietu SDK open source na GitHub.
Dostępne biblioteki na Androida (za pomocą CMake)
Pamiętaj, że biblioteki C++ na platformy Apple są wymienione na stronie konfiguracji dla platform Apple (iOS+).
Usługa Firebase | Odwołania do biblioteki ( firebaseCpp.dependencies w pliku build.gradle ) |
Odwołania do biblioteki ( firebase_libs w pliku CMakeLists.txt ) |
---|---|---|
AdMob | admob |
firebase_admob (wymagany) firebase_analytics (wymagany) firebase_app
|
Analytics | analytics |
firebase_analytics (wymagane) firebase_app
|
App Check | appCheck |
firebase_app_check (wymagane) firebase_app
|
Authentication | auth |
firebase_auth (wymagane) firebase_app
|
Cloud Firestore | firestore |
firebase_firestore (wymagany) firebase_auth (wymagany) firebase_app
|
Cloud Functions | functions |
firebase_functions (wymagane) firebase_app
|
Cloud Messaging | messaging |
firebase_messaging (zalecane) firebase_analytics (wymagany) firebase_app
|
Cloud Storage | storage |
firebase_storage (wymagane) firebase_app
|
Dynamic Links | dynamicLinks |
firebase_dynamic_links (zalecane) firebase_analytics (wymagany) firebase_app
|
Realtime Database | database |
firebase_database (wymagane) firebase_app
|
Remote Config | remoteConfig |
firebase_remote_config (zalecane) firebase_analytics (wymagany) firebase_app
|
Dodatkowe informacje o konfiguracji na urządzeniu mobilnym
Pobieranie raportów o awariach NDK
Firebase Crashlytics obsługuje raportowanie awarii w przypadku aplikacji korzystających z bibliotek natywnych Androida. Więcej informacji znajdziesz w artykule Pobieranie raportów o awariach w NDK na Androida.
niestandardowe systemy kompilacji,
Firebase udostępnia skrypt generate_xml_from_google_services_json.py
, który umożliwia konwertowanie zasobów google-services.json
na zasoby .xml
, które możesz uwzględnić w projekcie. Ten skrypt stosuje tę samą transformację, którą wtyczka Gradle dla usług Google Play wykonuje podczas kompilowania aplikacji na Androida.
Jeśli nie kompilujesz za pomocą Gradle (np. używasz ndk-build, makefiles, Visual Studio itp.), możesz użyć tego skryptu, aby zautomatyzować generowanie Android String Resources.
ProGuard
Wiele systemów kompilacji Androida używa ProGuard do kompilacji w trybie wydania, aby zmniejszać rozmiary aplikacji i chronić kod źródłowy w języku Java.
Jeśli używasz ProGuard, musisz dodać pliki w folderze libs/android/*.pro
odpowiadające bibliotekom Firebase C++, których używasz w konfiguracji ProGuard.
Jeśli np. używasz Gradle Google Analytics, plik build.gradle
będzie wyglądać tak:
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 } } }
Wymagania dotyczące Usług Google Play
Większość bibliotek Firebase C++ wymaga, aby usługi Google Play były dostępne na urządzeniu z Androidem klienta. Jeśli podczas inicjalizacji biblioteka Firebase C++ zwraca wartość
kInitResultFailedMissingDependency
, oznacza to, że usługi Google Play są niedostępne na urządzeniu klienta (co oznacza, że trzeba je zaktualizować, ponownie aktywować, poprawić uprawnienia itp.). Biblioteki Firebase nie można używać, dopóki nie poprawisz sytuacji na urządzeniu klienta.
Aby dowiedzieć się, dlaczego Usługi Google Play są niedostępne na urządzeniu klienta (i spróbować rozwiązać ten problem), możesz użyć funkcji w google_play_services/availability.h
.
W tabeli poniżej znajdziesz informacje o tym, czy w przypadku danej obsługiwanej usługi Firebase na urządzeniu klienta wymagane są usługi Google Play.
Biblioteka Firebase C++ | Czy na urządzeniu klienta wymagane są Usługi Google Play? |
---|---|
AdMob | Niewymagane (zwykle) |
Analytics | Niewymagane |
Authentication | Wymagane |
Cloud Firestore | Wymagane |
Cloud Functions | Wymagane |
Cloud Messaging | Wymagane |
Cloud Storage | Wymagane |
Dynamic Links | Wymagane |
Realtime Database | Wymagane |
Remote Config | Wymagane |
AdMob i Usługi Google Play
Większość wersji pakietu SDK Google Mobile Ads na Androida może działać prawidłowo bez Usług Google Play na urządzeniu klienta. Jeśli jednak zamiast standardowej zależności com.google.firebase:firebase-ads
wymienionej powyżej używasz zależności com.google.android.gms:play-services-ads-lite
, usługi Google Play są wymagane.
Inicjowanie AdMob zwraca wartość kInitResultFailedMissingDependency
tylko wtedy, gdy są spełnione oba te warunki:
- Usługi Google Play są niedostępne na urządzeniu klienta.
- Używasz
com.google.android.gms:play-services-ads-lite
.
Konfigurowanie przepływu pracy na komputerze (beta)
Podczas tworzenia gry często łatwiej jest najpierw przetestować ją na komputerze, a potem wdrożyć i przetestować na urządzeniach mobilnych. Aby umożliwić korzystanie z tego procesu, udostępniamy podzbiór pakietów SDK Firebase C++, które można uruchamiać w systemach Windows, macOS i Linux oraz w edytorze C++.
W przypadku przepływów pracy na komputerze musisz wykonać te czynności:
- Skonfiguruj projekt C++ pod kątem CMake.
- Tworzenie projektu Firebase
- Zarejestruj aplikację (na iOS lub Androida) w Firebase
- Dodawanie pliku konfiguracji Firebase na platformę mobilną
Utwórz wersję pliku konfiguracji Firebase na komputer:
Jeśli dodasz plik
google-services.json
na Androida – gdy uruchomisz aplikację, Firebase odnajdzie ten plik mobilny, a następnie automatycznie wygeneruje plik konfiguracji na komputer Firebase (google-services-desktop.json
).Jeśli dodano plik
GoogleService-Info.plist
na iOS – zanim uruchomisz aplikację, musisz przekonwertować ten plik mobilny na plik konfiguracji na komputer Firebase. Aby przekonwertować plik, uruchom to polecenie w tym samym katalogu, w którym znajduje się plikGoogleService-Info.plist
:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
Ten plik konfiguracji komputera zawiera identyfikator projektu C++, który został podany w procesie konfiguracji konsoli Firebase. Więcej informacji o plikach konfiguracji znajdziesz w artykule Informacje o projektach Firebase.
Dodaj pakiety SDK Firebase do projektu C++.
Poniżej znajdziesz przykład dodawania dowolnego obsługiwanego produktu Firebase do projektu w C++. W tym przykładzie pokazujemy dodawanie znaczników Firebase Authentication i Firebase Realtime Database.
Ustaw zmienną środowiskową
FIREBASE_CPP_SDK_DIR
na lokalizację rozpakowanego pakietu SDK Firebase C++.Do pliku
CMakeLists.txt
projektu dodaj następujące treści, w tym biblioteki usług Firebase, których chcesz używać. Aby na przykład użyć właściwości Firebase Authentication i 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}")
Uruchom aplikację w C++.
Dostępne biblioteki (komputer)
Pakiet SDK Firebase C++ zawiera obsługę przepływu pracy na komputerze dla podzbioru funkcji, co umożliwia korzystanie z pewnych części Firebase w samodzielnych wersjach na komputery z systemem Windows, macOS i Linux.
Usługa Firebase | Odwołania do bibliotek (za pomocą CMake) |
---|---|
App Check |
firebase_app_check (wymagane) firebase_app
|
Authentication |
firebase_auth (wymagane) firebase_app
|
Cloud Firestore |
firebase_firestore firebase_auth firebase_app
|
Cloud Functions |
firebase_functions (wymagane) firebase_app
|
Cloud Storage |
firebase_storage (wymagane) firebase_app
|
Realtime Database |
firebase_database (wymagane) firebase_app
|
Remote Config |
firebase_remote_config (wymagane) firebase_app
|
Firebase udostępnia pozostałe biblioteki na komputery jako implementacje w postaci stubów (niefunkcjonalnych) dla wygody podczas kompilowania aplikacji na Windowsa, macOS i Linuxa. Dlatego nie musisz warunkowo kompilować kodu pod kątem komputerów stacjonarnych.
Realtime Database komputer
Pakiet SDK Realtime Database na komputery korzysta z protokołu REST do uzyskiwania dostępu do bazy danych, dlatego musisz zadeklarować indeksy, których używasz z Query::OrderByChild()
na komputerze, ponieważ w przeciwnym razie odbiorniki nie będą działać.
Dodatkowe informacje o konfiguracji na komputerze
Biblioteki Windows
W przypadku systemu Windows wersje bibliotek są udostępniane na podstawie tych informacji:
- Platforma kompilacji: tryb 32-bitowy (x86) a 64-bitowy (x64)
- Środowisko wykonawcze systemu Windows: wielowątkowy / MT a wielowątkowa biblioteka DLL /MD
- Cel: wersja produkcyjna a wersja deweloperska
Pamiętaj, że te biblioteki zostały przetestowane za pomocą Visual Studio 2015 i 2017.
Podczas kompilowania aplikacji komputerowych C++ w systemie Windows powiązaj z projektem te biblioteki Windows SDK. Więcej informacji znajdziesz w dokumentacji kompilatora.
Biblioteka Firebase C++ | Zależności biblioteki pakietu SDK systemu Windows |
---|---|
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 |
Biblioteki macOS
W przypadku systemu macOS (Darwin) dostępne są wersje bibliotek na platformę 64-bitową (x86_64). Dla wygody użytkowników udostępniamy również ramy.
Pamiętaj, że biblioteki macOS zostały przetestowane za pomocą Xcode 13.3.1.
Podczas kompilowania aplikacji na komputery z C++ na macOS połącz z projektem:
pthread
biblioteka systemowaCoreFoundation
System operacyjny macOSFoundation
System operacyjny macOSSecurity
System operacyjny macOSGSS
System operacyjny macOSKerberos
System operacyjny macOSSystemConfiguration
System operacyjny macOS
Więcej informacji znajdziesz w dokumentacji kompilatora.
Biblioteki Linuksa
W przypadku systemu Linux udostępniane są wersje bibliotek na platformy 32-bitowe (i386) i 64-bitowe (x86_64).
Pamiętaj, że biblioteki Linuxa zostały przetestowane za pomocą GCC 4.8.0, GCC 7.2.0 i Clang 5.0 w Ubuntu.
Podczas kompilowania aplikacji komputerowych C++ w systemie Linux połącz bibliotekę systemową pthread
z projektem. Więcej informacji znajdziesz w dokumentacji kompilatora. Jeśli kompilujesz kod za pomocą GCC 5 lub nowszej wersji, zdefiniuj -D_GLIBCXX_USE_CXX11_ABI=0
.
Dalsze kroki
Zapoznaj się z przykładowymi aplikacjami Firebase.
Zapoznaj się z pakietem SDK typu open source na GitHubie.
Przygotuj się do uruchomienia aplikacji:
- W konsoli Google Cloud skonfiguruj alerty dotyczące budżetu dla projektu.
- Aby uzyskać ogólny obraz wykorzystania projektu w różnych usługach Firebase, monitoruj panel Dane i rozliczenia w konsoli Firebase.
- Przejrzyj listę kontrolną przed wdrożeniem Firebase.