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 całkowicie ze swojego kodu C++, bez konieczności pisania kodu natywnego dla platformy. Zestaw SDK Firebase tłumaczy także wiele idiomów specyficznych dla języka używanych przez Firebase na interfejs bardziej znany programistom C++.
Więcej informacji o zasilaniu gier za pomocą Firebase znajdziesz na naszej stronie gier Firebase .
Dodałeś już Firebase do swojego projektu C++? Upewnij się, że używasz najnowszej wersji pakietu SDK Firebase C++ .
Warunki wstępne
Zainstaluj preferowany edytor lub środowisko IDE, takie jak Android Studio, IntelliJ lub VS Code.
Uzyskaj pakiet SDK dla Androida .
Upewnij się, że Twój projekt spełnia następujące wymagania:
Docelowy poziom API 19 (KitKat) lub wyższy
Używa Gradle i jest konfigurowany za pomocą 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ę Poznaj 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ć 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 aplikacji w polu nazwy 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), zazwyczaj
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 przypadku 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, który jest widoczny tylko dla Ciebie w konsoli Firebase
Certyfikat podpisywania debugowania SHA-1 : skrót SHA-1 jest wymagany przez uwierzytelnianie Firebase (podczas korzystania z logowania Google lub logowania się za pomocą numeru telefonu ) i łączy dynamicznych Firebase .
Kliknij opcję Zarejestruj aplikację .
Krok 4 : Dodaj plik konfiguracyjny Firebase
Kliknij Pobierz plik google-services.json, aby uzyskać plik konfiguracyjny Firebase na Androida.
Plik konfiguracyjny Firebase zawiera unikalne, ale nie tajne identyfikatory Twojego projektu. Aby dowiedzieć się więcej o tym pliku konfiguracyjnym, odwiedź stronę Informacje o projektach Firebase .
W dowolnym momencie możesz ponownie pobrać plik konfiguracyjny Firebase .
Upewnij się, że nazwa pliku konfiguracyjnego nie jest uzupełniona dodatkowymi znakami, takimi jak
(2)
.
Otwórz swój projekt C++ w IDE, a następnie dodaj plik konfiguracyjny do projektu:
Kompilacje Gradle — Dodaj plik konfiguracyjny do tego samego katalogu, w którym znajduje się plik
build.gradle
najwyższego poziomu.Inne systemy kompilacji — zobacz poniżej niestandardowe systemy kompilacji , aby wygenerować zasoby Android String .
(Tylko kompilacje Gradle) Aby włączyć usługi Firebase w 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 także repozytorium Maven firmy 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.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 // ... } }
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 { // ... }
Skończyłeś konfigurowanie zadań w konsoli Firebase. Kontynuuj dodawanie pakietów SDK Firebase C++ poniżej.
Krok 5 : Dodaj zestawy SDK Firebase C++
Kroki opisane w tej sekcji stanowią przykład dodawania obsługiwanych produktów Firebase do projektu Firebase C++.
Pobierz pakiet SDK Firebase C++ , a następnie rozpakuj zestaw SDK w dogodnym miejscu.
Zestaw SDK Firebase C++ 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
swojego projektu dodaj następującą treść: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) (zwykle
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ą treść.
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 aplikację, aby mieć pewność, że wszystkie zależności mają niezbędne wersje.
Jeśli dodałeś Analytics, uruchom aplikację, aby wysłać do Firebase weryfikację, że pomyślnie zintegrowałeś Firebase. W przeciwnym razie możesz pominąć etap weryfikacji.
W dziennikach urządzenia zostanie wyświetlona weryfikacja Firebase potwierdzająca zakończenie inicjalizacji. Jeśli uruchomiłeś aplikację na emulatorze mającym dostęp do sieci, konsola Firebase powiadomi 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 serwisie GitHub .
Dostępne biblioteki dla Androida (przy użyciu CMake)
Należy pamiętać, że biblioteki C++ dla platform Apple są wymienione w wersji tej strony konfiguracji 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 |
Kontrola aplikacji | appCheck | firebase_app_check (wymagane) firebase_app |
Uwierzytelnianie | auth | firebase_auth (wymagane) firebase_app |
Chmura 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
Uzyskaj raporty o awariach NDK
Firebase Crashlytics obsługuje raportowanie awarii dla aplikacji korzystających z natywnych bibliotek Androida. Aby dowiedzieć się więcej, zobacz Pobieranie raportów o awariach Androida NDK .
Niestandardowe systemy budowania
Firebase udostępnia skrypt generate_xml_from_google_services_json.py
umożliwiający konwersję google-services.json
na zasoby .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, plików makefile, Visual Studio itp.), możesz użyć tego skryptu, aby zautomatyzować generowanie zasobów ciągów systemu Android .
ProGuard
Wiele systemów kompilacji Androida używa ProGuard do kompilacji w trybie wydania, aby zmniejszyć rozmiar aplikacji i chronić kod źródłowy 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 przypadku Gradle, jeśli korzystasz z Google Analytics, Twój plik build.gradle
będzie wyglądał następująco:
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 wartość 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ć, naprawić 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 na urządzeniu klienckim wymagane są usługi Google Play dla każdego obsługiwanego produktu Firebase.
Biblioteka Firebase C++ | Czy na urządzeniu klienckim wymagane są usługi Google Play? |
---|---|
AdMob | Nie jest wymagane (zwykle) |
Analityka | Nie wymagane |
Uwierzytelnianie | Wymagany |
Chmura 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 dla 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 wymienionej powyżej standardowej zależności com.google.firebase:firebase-ads
, 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 stacjonarnym ( beta )
Kiedy tworzysz grę, często znacznie łatwiej jest najpierw przetestować ją na platformach stacjonarnych, a następnie wdrożyć i przetestować na urządzeniach mobilnych w późniejszym etapie jej tworzenia. Aby wesprzeć ten przepływ pracy, udostępniamy podzbiór zestawów SDK Firebase C++ , które można uruchomić w systemach Windows, macOS, Linux oraz w edytorze C++.
W przypadku przepływów pracy na komputerze stacjonarnym 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 wersję komputerową pliku konfiguracyjnego Firebase:
Jeśli dodano plik
google-services.json
na Androida — po uruchomieniu aplikacji Firebase lokalizuje ten plik mobilny , a następnie automatycznie generuje plik konfiguracyjny Firebase na komputer stacjonarny (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 komputery stacjonarne . 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++ wprowadzony w przepływie pracy konfiguracji konsoli Firebase. Odwiedź stronę Poznaj 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 dodania dowolnego obsługiwanego produktu Firebase do projektu C++. W tym przykładzie omówimy dodanie uwierzytelniania Firebase i bazy danych Firebase Realtime.
Ustaw zmienną środowiskową
FIREBASE_CPP_SDK_DIR
na lokalizację rozpakowanego pakietu SDK Firebase C++.Do pliku
CMakeLists.txt
swojego projektu dodaj następującą zawartość, w tym biblioteki produktów Firebase, których chcesz używać. Na przykład, aby użyć uwierzytelniania Firebase i bazy danych Firebase Realtime:# 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ływu pracy na komputerze stacjonarnym 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 | Biblioteki referencyjne (przy użyciu CMake) |
---|---|
Kontrola aplikacji | firebase_app_check (wymagane) firebase_app |
Uwierzytelnianie | firebase_auth (wymagane) firebase_app |
Chmura 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 udostępnia 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 przeznaczonego na komputer stacjonarny.
Pulpit bazy danych czasu rzeczywistego
Zestaw SDK bazy danych czasu rzeczywistego dla komputerów stacjonarnych korzysta z protokołu REST w celu uzyskania dostępu do bazy danych, dlatego musisz zadeklarować indeksy , których używasz z Query::OrderByChild()
na komputerze stacjonarnym, w przeciwnym razie detektory zawiodą.
Dodatkowe informacje dotyczące konfiguracji komputera stacjonarnego
Biblioteki Windowsa
W przypadku systemu Windows dostępne są wersje bibliotek oparte na następujących zasadach:
- Platforma kompilacji: tryb 32-bitowy (x86) vs 64-bitowy (x64).
- Środowisko wykonawcze Windows: wielowątkowe/MT vs wielowątkowe DLL/MD
- Cel: wydanie vs debugowanie
Należy pamiętać, że następujące biblioteki zostały przetestowane przy użyciu programu Visual Studio 2015 i 2017.
Tworząc aplikacje klasyczne w języku C++ w systemie Windows, połącz z projektem następujące biblioteki Windows SDK. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją kompilatora.
Biblioteka Firebase C++ | Zależności bibliotek Windows SDK |
---|---|
Kontrola aplikacji | advapi32, ws2_32, crypt32 |
Uwierzytelnianie | advapi32, ws2_32, crypt32 |
Chmura 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-u
W przypadku systemu macOS (Darwin) dostępne są wersje bibliotek dla platformy 64-bitowej (x86_64). Dla Twojej wygody dostępne są również struktury.
Należy pamiętać, że biblioteki macOS zostały przetestowane przy użyciu Xcode 13.3.1.
Tworząc aplikacje komputerowe w języku C++ na macOS, połącz następujące elementy ze swoim projektem:
- biblioteka systemowa
pthread
- Struktura systemu macOS
CoreFoundation
-
Foundation
struktura systemu macOS - Struktura systemu
Security
macOS - Struktura systemu
GSS
macOS - Struktura systemu
Kerberos
macOS - Konfiguracja
SystemConfiguration
Struktura systemu macOS
Aby uzyskać więcej informacji, zapoznaj się z dokumentacją kompilatora.
Biblioteki Linuksa
W przypadku systemu Linux dostępne są wersje bibliotek dla platform 32-bitowych (i386) i 64-bitowych (x86_64).
Należy pamiętać, że biblioteki systemu Linux zostały przetestowane przy użyciu GCC 4.8.0, GCC 7.2.0 i Clang 5.0 na Ubuntu.
Tworząc aplikacje klasyczne w języku C++ w systemie Linux, połącz bibliotekę systemową pthread
ze swoim projektem. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją kompilatora. Jeśli budujesz przy użyciu GCC 5 lub nowszego, zdefiniuj -D_GLIBCXX_USE_CXX11_ABI=0
.
Następne kroki
Poznaj przykładowe aplikacje Firebase .
Przygotuj się do uruchomienia aplikacji:
- Skonfiguruj alerty budżetowe dla swojego projektu w Google Cloud Console.
- Monitoruj panel użytkowania i rozliczeń w konsoli Firebase, aby uzyskać ogólny obraz wykorzystania projektu w wielu usługach Firebase.
- Przejrzyj listę kontrolną uruchamiania Firebase .