Wzmocnij swoje gry C++ za pomocą naszych zestawów SDK Firebase C++, które zapewniają interfejs C++ oprócz zestawów SDK Firebase.
Uzyskaj dostęp do Firebase w całości ze swojego kodu C++, bez konieczności pisania kodu natywnego dla platformy. Firebase SDK tłumaczy również wiele idiomów specyficznych dla danego języka używanych przez Firebase na interfejs bardziej znany programistom C++.
Dowiedz się więcej o ulepszaniu swoich gier za pomocą Firebase na naszej stronie z grami w Firebase .
Dodałeś już Firebase do swojego projektu C++? Upewnij się, że używasz najnowszej wersji pakietu Firebase C++ SDK .
Wymagania wstępne
Zainstaluj preferowany edytor lub środowisko IDE, takie jak Android Studio, IntelliJ lub VS Code.
Uzyskaj zestaw Android SDK .
Upewnij się, że Twój projekt spełnia te wymagania:
Celuje w interfejs API poziomu 19 (KitKat) lub wyższy
Używa Gradle i jest skonfigurowany z CMake
Skonfiguruj urządzenie fizyczne lub użyj emulatora, aby uruchomić aplikację.
Zaloguj się do Firebase przy użyciu swojego konta Google.
Krok 2 : Utwórz projekt Firebase
Zanim będziesz mógł dodać Firebase do swojego projektu C++, musisz utworzyć projekt Firebase, aby połączyć się z projektem C++. Odwiedź stronę Projekty Firebase, aby dowiedzieć się więcej o projektach Firebase.
Krok 3 : Zarejestruj swoją aplikację w Firebase
Aby korzystać z Firebase w aplikacji na Androida, musisz zarejestrować swoją aplikację w projekcie Firebase. Rejestracja aplikacji jest często nazywana „dodawaniem” aplikacji do projektu.
Przejdź do konsoli Firebase .
Na środku strony przeglądu projektu kliknij ikonę Androida (
) lub Dodaj aplikację , aby uruchomić proces konfiguracji.Wpisz nazwę pakietu swojej aplikacji w polu Nazwa pakietu Androida .
Nazwa pakietu jednoznacznie identyfikuje Twoją aplikację na urządzeniu i w Sklepie Google Play.
Nazwa pakietu jest często określana jako identyfikator aplikacji .
Znajdź nazwę pakietu swojej aplikacji w pliku Gradle modułu (na poziomie aplikacji), zwykle
app/build.gradle
(przykładowa nazwa pakietu:com.yourcompany.yourproject
).Pamiętaj, że w nazwie pakietu rozróżniana jest wielkość liter i nie można jej zmienić w tej aplikacji Firebase na Androida po jej zarejestrowaniu w projekcie Firebase.
(Opcjonalnie) Wprowadź inne informacje o aplikacji: pseudonim aplikacji i certyfikat podpisywania debugowania SHA-1 .
Pseudonim aplikacji : wewnętrzny, wygodny identyfikator widoczny tylko dla Ciebie w konsoli Firebase
Certyfikat podpisywania debugowania SHA-1 : hash SHA-1 jest wymagany przez uwierzytelnianie Firebase (podczas korzystania z logowania przez Google lub logowania za pomocą numeru telefonu ) i łączy dynamicznych Firebase .
Kliknij Zarejestruj aplikację .
Krok 4 : Dodaj plik konfiguracyjny Firebase
Kliknij Pobierz google-services.json, aby uzyskać plik konfiguracyjny Firebase Android.
Plik konfiguracyjny Firebase zawiera unikalne, ale nietajne identyfikatory Twojego projektu. Aby dowiedzieć się więcej o tym pliku konfiguracyjnym, odwiedź stronę Zrozumienie projektów Firebase .
W dowolnym momencie możesz ponownie pobrać plik konfiguracyjny Firebase .
Upewnij się, że nazwa pliku konfiguracyjnego nie zawiera dodatkowych znaków, takich jak
(2)
.
Otwórz swój projekt C++ w IDE, a następnie dodaj plik konfiguracyjny do swojego projektu:
Kompilacje Gradle — Dodaj swój plik konfiguracyjny do tego samego katalogu, w którym znajduje się plik
build.gradle
najwyższego poziomu.Inne systemy kompilacji — patrz Niestandardowe systemy kompilacji poniżej, aby wygenerować zasoby Android String Resources .
(Tylko kompilacje Gradle) Aby włączyć usługi Firebase w swoim projekcie C++, dodaj wtyczkę google-services do pliku
build.gradle
najwyższego poziomu.Dodaj reguły, aby uwzględnić wtyczkę Google Services Gradle. Sprawdź, czy masz również repozytorium Google Maven.
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.15' // 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 // ... } }
Zastosuj wtyczkę Google Services Gradle:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
Zakończyłeś konfigurowanie zadań w konsoli Firebase. Kontynuuj, aby dodać zestawy SDK Firebase C++ poniżej.
Krok 5 : Dodaj zestawy SDK Firebase C++
Czynności opisane w tej sekcji stanowią przykład dodawania obsługiwanych produktów Firebase do projektu Firebase C++.
Pobierz Firebase C++ SDK , a następnie rozpakuj SDK w dogodnym miejscu.
Zestaw Firebase C++ SDK nie jest specyficzny dla platformy, ale zawiera biblioteki specyficzne dla platformy.
W pliku
gradle.properties
projektu określ lokalizację rozpakowanego pakietu SDK:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
Do pliku
settings.gradle
projektu dodaj następującą zawartość: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"
Do pliku Gradle modułu (na poziomie aplikacji) (zazwyczaj
app/build.gradle
) dodaj następującą treść.
Dołącz zależności bibliotek dla produktów Firebase, których chcesz używać w swojej aplikacji.Analityka włączona
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 }
Analityka nie jest włączona
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 }
Do pliku
CMakeLists.txt
projektu dodaj następującą zawartość.
Dołącz biblioteki produktów Firebase, których chcesz używać w swojej aplikacji.Analityka włączona
# 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}")
Analityka nie jest włączona
# 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 swoją aplikację, aby upewnić się, że wszystkie zależności mają niezbędne wersje.
Jeśli dodałeś Analytics, uruchom aplikację, aby wysłać do Firebase potwierdzenie, że pomyślnie zintegrowałeś Firebase. W przeciwnym razie możesz pominąć krok weryfikacji.
Twoje dzienniki urządzeń pokażą weryfikację Firebase, że inicjalizacja została zakończona. Jeśli uruchomiłeś swoją aplikację na emulatorze, który ma dostęp do sieci, konsola Firebase poinformuje Cię, że połączenie aplikacji zostało nawiązane.
Wszystko gotowe! Twoja aplikacja C++ jest zarejestrowana i skonfigurowana do korzystania z usług Firebase.
Dostępne biblioteki
Dowiedz się więcej o bibliotekach C++ Firebase w dokumentacji referencyjnej oraz w naszej wersji pakietu SDK typu open source w witrynie GitHub .
Dostępne biblioteki dla Androida (przy użyciu CMake)
Należy pamiętać, że biblioteki C++ dla platform Apple są wymienione na tej stronie konfiguracji w wersji dla platform Apple (iOS+) .
Produkt Firebase | Referencje biblioteczne ( firebaseCpp.dependencies dla pliku build.gradle ) | Referencje biblioteczne ( firebase_libs dla pliku CMakeLists.txt ) |
---|---|---|
AdMob | admob | firebase_admob (wymagane) firebase_analytics (wymagane) firebase_app |
Analityka | analytics | firebase_analytics (wymagane) firebase_app |
Sprawdź aplikację | appCheck | firebase_app_check (wymagane) firebase_app |
Uwierzytelnianie | auth | firebase_auth (wymagane) firebase_app |
Cloud Firestore | firestore | firebase_firestore (wymagane) firebase_auth (wymagane) firebase_app |
Funkcje chmury | functions | firebase_functions (wymagane) firebase_app |
Wiadomości w chmurze | messaging | firebase_messaging (zalecane) firebase_analytics (wymagane) firebase_app |
Magazyn w chmurze | storage | firebase_storage (wymagane) firebase_app |
Linki dynamiczne | dynamicLinks | firebase_dynamic_links (zalecane) firebase_analytics (wymagane) firebase_app |
Baza danych czasu rzeczywistego | database | firebase_database (wymagane) firebase_app |
Zdalna konfiguracja | remoteConfig | firebase_remote_config (zalecane) firebase_analytics (wymagane) firebase_app |
Dodatkowe informacje dotyczące konfiguracji mobilnej
Pobierz raporty o awariach NDK
Firebase Crashlytics obsługuje raportowanie awarii aplikacji korzystających z natywnych bibliotek Androida. Aby dowiedzieć się więcej, zobacz Pobieranie raportów o awariach Android NDK .
Systemy budowania na zamówienie
Firebase udostępnia skrypt generate_xml_from_google_services_json.py
do konwersji zasobów google-services.json
na .xml
, które możesz uwzględnić w swoim projekcie. Ten skrypt stosuje tę samą transformację, którą wykonuje wtyczka Gradle usług Google Play podczas tworzenia aplikacji na Androida.
Jeśli nie budujesz przy użyciu Gradle (na przykład używasz ndk-build, makefiles, Visual Studio itp.), możesz użyć tego skryptu do zautomatyzowania generowania Android String Resources .
ProGuard
Wiele systemów kompilacji Android używa ProGuard do kompilacji w trybie Release w celu zmniejszenia rozmiarów aplikacji i ochrony kodu źródłowego Java.
Jeśli używasz ProGuard, musisz dodać pliki w libs/android/*.pro
odpowiadające bibliotekom Firebase C++, których używasz w konfiguracji ProGuard.
Na przykład w Gradle, jeśli korzystasz z Google Analytics, plik build.gradle
wyglądałby 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 znajdowały się na urządzeniu klienta z systemem Android. Jeśli biblioteka Firebase C++ zwraca kInitResultFailedMissingDependency
podczas inicjalizacji, oznacza to, że usługi Google Play nie są dostępne na urządzeniu klienckim (co oznacza, że należy je zaktualizować, ponownie aktywować, poprawić uprawnienia itp.). Nie można używać biblioteki Firebase, dopóki sytuacja na urządzeniu klienckim nie zostanie naprawiona.
Możesz dowiedzieć się, dlaczego usługi Google Play są niedostępne na urządzeniu klienckim (i spróbować to naprawić), korzystając z funkcji w google_play_services/availability.h
.
W poniższej tabeli podano, czy usługi Google Play są wymagane na urządzeniu klienckim dla każdego obsługiwanego produktu Firebase.
Biblioteka Firebase C++ | Usługi Google Play wymagane na urządzeniu klienckim? |
---|---|
AdMob | Nie wymagane (zwykle) |
Analityka | Nie wymagane |
Uwierzytelnianie | Wymagany |
Cloud Firestore | Wymagany |
Funkcje chmury | Wymagany |
Wiadomości w chmurze | Wymagany |
Magazyn w chmurze | Wymagany |
Linki dynamiczne | Wymagany |
Baza danych czasu rzeczywistego | Wymagany |
Zdalna konfiguracja | Wymagany |
Usługi AdMob i Google Play
Większość wersji pakietu SDK do reklam mobilnych Google na Androida może działać poprawnie bez usług Google Play na urządzeniu klienckim. Jeśli jednak używasz zależności com.google.android.gms:play-services-ads-lite
, zamiast standardowej zależności com.google.firebase:firebase-ads
wymienionej powyżej, wymagane są Usługi Google Play .
Inicjalizacja AdMob zwróci kInitResultFailedMissingDependency
tylko wtedy, gdy spełnione są oba poniższe warunki:
- Usługi Google Play są niedostępne na urządzeniu klienckim.
- Używasz
com.google.android.gms:play-services-ads-lite
.
Skonfiguruj przepływ pracy na komputerze ( wersja beta )
Podczas tworzenia gry często znacznie łatwiej jest najpierw przetestować grę na platformach stacjonarnych, a następnie wdrożyć ją i przetestować na urządzeniach mobilnych w późniejszym etapie tworzenia. Aby wesprzeć ten przepływ pracy, udostępniamy podzbiór zestawów SDK Firebase C++ , które można uruchamiać w systemach Windows, macOS, Linux oraz z poziomu edytora C++.
W przypadku przepływów pracy na komputerze należy wykonać następujące czynności:
- Skonfiguruj swój projekt C++ dla CMake.
- Utwórz projekt Firebase
- Zarejestruj swoją aplikację (iOS lub Android) w Firebase
- Dodaj plik konfiguracyjny Firebase platformy mobilnej
Utwórz komputerową wersję pliku konfiguracyjnego Firebase:
Jeśli dodałeś plik
google-services.json
na Androida — po uruchomieniu aplikacji Firebase lokalizuje ten plik mobilny , a następnie automatycznie generuje plik konfiguracyjny Firebase na komputer (google-services-desktop.json
).Jeśli dodałeś plik iOS
GoogleService-Info.plist
— przed uruchomieniem aplikacji musisz przekonwertować ten plik mobilny na plik konfiguracyjny Firebase na komputerze . Aby przekonwertować plik, uruchom następujące polecenie z tego samego katalogu, w którym znajduje się plikGoogleService-Info.plist
:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
Ten plik konfiguracyjny pulpitu zawiera identyfikator projektu C++, który został wprowadzony w przepływie pracy konfiguracji konsoli Firebase. Odwiedź stronę Zrozumieć projekty Firebase, aby dowiedzieć się więcej o plikach konfiguracyjnych.
Dodaj zestawy SDK Firebase do swojego projektu C++.
Poniższe kroki służą jako przykład dodawania obsługiwanego produktu Firebase do projektu C++. W tym przykładzie przeprowadzimy proces dodawania uwierzytelniania Firebase i bazy danych czasu rzeczywistego Firebase.
Ustaw zmienną środowiskową
FIREBASE_CPP_SDK_DIR
na lokalizację rozpakowanego pakietu Firebase C++ SDK.Do pliku
CMakeLists.txt
projektu dodaj następującą zawartość, w tym biblioteki produktów Firebase, których chcesz użyć. Na przykład, aby użyć uwierzytelniania Firebase i bazy danych czasu rzeczywistego Firebase:# 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ę C++.
Dostępne biblioteki (komputer stacjonarny)
Pakiet SDK Firebase C++ obejmuje obsługę przepływów pracy na komputerach stacjonarnych dla podzbioru funkcji, umożliwiając używanie niektórych części Firebase w samodzielnych kompilacjach komputerów stacjonarnych w systemach Windows, macOS i Linux.
Produkt Firebase | Odwołania do bibliotek (przy użyciu CMake) |
---|---|
Sprawdź aplikację | firebase_app_check (wymagane) firebase_app |
Uwierzytelnianie | firebase_auth (wymagane) firebase_app |
Cloud Firestore | firebase_firestore firebase_auth firebase_app |
Funkcje chmury | firebase_functions (wymagane) firebase_app |
Magazyn w chmurze | firebase_storage (wymagane) firebase_app |
Baza danych czasu rzeczywistego | firebase_database (wymagane) firebase_app |
Zdalna konfiguracja | firebase_remote_config (wymagane) firebase_app |
Firebase zapewnia pozostałe biblioteki komputerowe jako implementacje pośredniczące (niefunkcjonalne) dla wygody podczas tworzenia dla systemów Windows, macOS i Linux. W związku z tym nie trzeba warunkowo kompilować kodu w celu kierowania na pulpit.
Pulpit bazy danych czasu rzeczywistego
Zestaw SDK bazy danych czasu rzeczywistego dla komputerów stacjonarnych korzysta z usług REST w celu uzyskania dostępu do bazy danych, dlatego należy zadeklarować indeksy używane z Query::OrderByChild()
na komputerach stacjonarnych, w przeciwnym razie detektory zakończą się niepowodzeniem.
Dodatkowe informacje dotyczące konfiguracji komputera stacjonarnego
Biblioteki Windowsa
W przypadku systemu Windows wersje bibliotek są dostarczane w oparciu o następujące elementy:
- Platforma kompilacji: tryb 32-bitowy (x86) vs 64-bitowy (x64).
- Środowisko wykonawcze systemu Windows: wielowątkowe / MT a wielowątkowe biblioteki DLL / MD
- Cel: wersja a debugowanie
Należy zauważyć, że następujące biblioteki zostały przetestowane przy użyciu programu Visual Studio 2015 i 2017.
Tworząc aplikacje klasyczne C++ w systemie Windows, połącz z projektem następujące biblioteki zestawu Windows SDK. Więcej informacji można znaleźć w dokumentacji kompilatora.
Biblioteka Firebase C++ | Zależności bibliotek Windows SDK |
---|---|
Sprawdź aplikację | advapi32, ws2_32, crypt32 |
Uwierzytelnianie | advapi32, ws2_32, crypt32 |
Cloud Firestore | advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32 |
Funkcje chmury | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
Magazyn w chmurze | advapi32, ws2_32, crypt32 |
Baza danych czasu rzeczywistego | advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv |
Zdalna konfiguracja | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
biblioteki macOS
W przypadku systemu macOS (Darwin) dostępne są wersje bibliotek dla platformy 64-bitowej (x86_64). Dla Twojej wygody dostępne są również ramy.
Pamiętaj, że biblioteki macOS zostały przetestowane przy użyciu Xcode 13.3.1.
Tworząc aplikacje klasyczne C++ w systemie macOS, połącz następujące elementy ze swoim projektem:
- biblioteka systemowa
pthread
- Framework systemu macOS
CoreFoundation
-
Foundation
framework systemu macOS -
Security
struktura systemu macOS - Framework systemu
GSS
macOS - Framework systemu macOS
Kerberos
- Struktura systemu macOS
SystemConfiguration
Więcej informacji można znaleźć w dokumentacji kompilatora.
Biblioteki Linuksa
W przypadku systemu Linux dostępne są wersje bibliotek dla platform 32-bitowych (i386) i 64-bitowych (x86_64).
Zauważ, że biblioteki Linuksa zostały przetestowane przy użyciu GCC 4.8.0, GCC 7.2.0 i Clang 5.0 na Ubuntu.
Tworząc aplikacje klasyczne C++ w systemie Linux, połącz bibliotekę systemową pthread
z projektem. Więcej informacji można znaleźć w dokumentacji kompilatora. Jeśli budujesz z GCC 5 lub nowszym, zdefiniuj -D_GLIBCXX_USE_CXX11_ABI=0
.
Następne kroki
Poznaj przykładowe aplikacje Firebase .
Zapoznaj się z pakietem SDK typu open source w usłudze GitHub .
Przygotuj się do uruchomienia aplikacji:
- Skonfiguruj alerty budżetowe dla swojego projektu w Google Cloud Console.
- Monitoruj pulpit nawigacyjny Wykorzystanie i rozliczenia w konsoli Firebase, aby uzyskać ogólny obraz wykorzystania projektu w wielu usługach Firebase.
- Przejrzyj listę kontrolną uruchamiania Firebase .