Zwiększ skuteczność swoich gier w C++ dzięki pakietom SDK Firebase C++, które oprócz pakietów SDK Firebase zapewniają interfejs C++.
Uzyskaj dostęp do Firebase całkowicie z poziomu kodu C++ bez konieczności pisania kodu natywnego dla platformy. Przekształca on też wiele identyfikatorów w określonych językach używanych przez Firebase na interfejs bardziej znany programistom C++.
Więcej informacji o wzbogacaniu gier dzięki Firebase znajdziesz na stronie gier w Firebase.
Masz już dodaną Firebase do swojego projektu w C++? Upewnij się, że używasz najnowszej wersji pakietu SDK Firebase C++.
Wymagania wstępne
Zainstaluj preferowany edytor lub IDE, takie jak Android Studio, IntelliJ lub VS Code.
Pobierz pakiet SDK na Androida.
Sprawdź, czy Twój projekt spełnia te wymagania:
Dotyczy interfejsu API na poziomie 19 (KitKat) lub wyższym
Używa Gradle i jest skonfigurowany przy użyciu CMake
Skonfiguruj urządzenie fizyczne lub użyj emulatora, aby uruchomić aplikację.
Zaloguj się w Firebase, korzystając ze swojego konta Google.
Krok 2. Utwórz projekt Firebase
Zanim dodasz Firebase do projektu w C++, musisz utworzyć projekt Firebase i połączyć go z tym projektem w C++. Więcej informacji o projektach Firebase znajdziesz w artykule Omówienie projektów Firebase.
Krok 3. Zarejestruj aplikację w Firebase
Aby używać Firebase w swojej aplikacji na Androida, musisz ją zarejestrować w projekcie Firebase. Rejestracja aplikacji często nazywa się „dodaniem” jej do projektu.
Otwórz konsolę Firebase.
Aby uruchomić przepływ pracy konfiguracji, na środku strony przeglądu projektu kliknij ikonę Androida (
) lub Dodaj aplikację.Wpisz nazwę pakietu aplikacji w polu Nazwa pakietu na Androida.
(Opcjonalnie) Wpisz inne informacje o aplikacji: Pseudonim aplikacji i Certyfikat podpisywania debugowania SHA-1.
Kliknij Zarejestruj aplikację.
Krok 4. Dodaj plik konfiguracji Firebase
Kliknij Pobierz google-services.json, aby uzyskać plik konfiguracyjny Firebase na Androida.
Otwórz swój projekt C++ w IDE, a następnie dodaj do niego plik konfiguracyjny:
Kompilacje Gradle – dodaj plik konfiguracyjny do tego samego katalogu, w którym znajduje się plik
build.gradle
najwyższego poziomu.Inne systemy kompilacji – aby wygenerować zasoby ciągu znaków Androida, zapoznaj się z sekcją Niestandardowe systemy kompilacji poniżej.
(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ę Gradle usług Google. Sprawdź też, czy masz 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.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 // ... } }
Zastosuj wtyczkę Gradle usług Google:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
Masz już za sobą konfigurowanie w konsoli Firebase. Przejdź do sekcji Dodawanie pakietów SDK Firebase w C++ poniżej.
Krok 5. Dodaj pakiety SDK Firebase w C++
Instrukcje w tej sekcji pokazują, jak dodać obsługiwane usługi Firebase do projektu Firebase w C++.
Pobierz pakiet SDK Firebase w C++, a potem rozpakuj go w dogodnym miejscu.
Pakiet SDK Firebase w C++ nie jest związany z konkretną platformą, ale zawiera biblioteki związane z tą platformą.
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 tę 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 te treści.
Podaj zależności bibliotek dla usług Firebase, których chcesz używać w 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 }
Statystyki nie są włączone
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 poniższą treść.
Dołącz biblioteki usług Firebase, których chcesz używać w 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}")
Statystyki nie są włączone
# 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 masz już dodaną usługę Analytics, uruchom aplikację, aby wysłać do Firebase potwierdzenie, że udało Ci się zintegrować Firebase. W przeciwnym razie możesz pominąć etap weryfikacji.
W dziennikach urządzenia będzie widoczna weryfikacja Firebase, że inicjowanie zostało ukończone. Jeśli uruchomiłeś aplikację za pomocą emulatora z dostępem do sieci, konsola Firebase powiadomi Cię, że połączenie z aplikacją zostało zakończone.
Wszystko gotowe. Twoja aplikacja w C++ jest zarejestrowana i skonfigurowana do korzystania z usług Firebase.
Dostępne biblioteki
Więcej informacji o bibliotekach Firebase w C++ znajdziesz w dokumentacji referencyjnej oraz w naszym pakiecie SDK typu open source w serwisie GitHub.
Biblioteki dostępne na Androida (przy użyciu CMake)
Biblioteki C++ dla platform Apple są wymienione na tej stronie konfiguracji na platformach Apple (iOS+).
Usługa Firebase | Odwołania do bibliotek ( firebaseCpp.dependencies plik build.gradle ) |
Odwołania do bibliotek ( firebase_libs plik CMakeLists.txt ) |
---|---|---|
AdMob | admob |
firebase_admob (wymagane) firebase_analytics (wymagane) firebase_app
|
Analytics | analytics |
firebase_analytics (wymagane) firebase_app
|
Sprawdzanie aplikacji | 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 Cloud | functions |
firebase_functions (wymagane) firebase_app
|
Komunikacja w chmurze | messaging |
firebase_messaging (zalecane) firebase_analytics (wymagane) firebase_app
|
Cloud Storage, | 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 na temat konfiguracji telefonu komórkowego
Otrzymuj raporty o awariach NDK
Firebase Crashlytics obsługuje raporty o awariach aplikacji korzystających z natywnych bibliotek Androida. Więcej informacji znajdziesz w sekcji Pobieranie raportów o awariach Androida NDK.
Niestandardowe systemy kompilacji
Firebase udostępnia skrypt generate_xml_from_google_services_json.py
pozwalający przekonwertować google-services.json
na zasoby typu .xml
, które możesz uwzględnić w swoim projekcie. Ten skrypt stosuje te same przekształcenia, które wtyczka do usług Google Play do Gradle wykonuje podczas tworzenia aplikacji na Androida.
Jeśli nie tworzysz kodu za pomocą Gradle (np. używasz ndk-build, Makefiles, Visual Studio itp.), możesz użyć tego skryptu, aby zautomatyzować generowanie zasobów ciągów tekstowych Androida.
ProGuard
Wiele systemów kompilacji na Androida korzysta z ProGuard przy kompilacjach w trybie wydania, by zmniejszyć rozmiar aplikacji i chronić kod źródłowy Java.
Jeśli używasz ProGuard, musisz dodać w libs/android/*.pro
pliki odpowiadające bibliotekom Firebase C++, których używasz w konfiguracji ProGuard.
Na przykład w przypadku Gradle, jeśli używasz 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 w C++ wymaga, aby Usługi Google Play były zainstalowane na urządzeniu z Androidem klienta. Jeśli przy inicjowaniu biblioteka Firebase C++ zwraca wartość kInitResultFailedMissingDependency
, oznacza to, że Usługi Google Play są niedostępne na urządzeniu klienckim (co oznacza, że wymagają aktualizacji, ponownego aktywowania, poprawienia uprawnień itp.). Z biblioteki Firebase nie można korzystać, dopóki sytuacja na urządzeniu klienta nie zostanie poprawiona.
Aby dowiedzieć się, dlaczego Usługi Google Play są niedostępne na urządzeniu klienckim (i spróbować rozwiązać ten problem), użyj funkcji dostępnych w narzędziu google_play_services/availability.h
.
W tabeli poniżej znajdziesz informacje o tym, czy usługi Google Play są wymagane na urządzeniu klienckim w przypadku każdej obsługiwanej usługi Firebase.
Biblioteka Firebase C++ | Na urządzeniu klienckim są wymagane usługi Google Play? |
---|---|
AdMob | Niewymagane (zazwyczaj) |
Analityka | Niewymagane |
Uwierzytelnianie | Wymagane |
Cloud Firestore | Wymagane |
Cloud Functions | Wymagane |
Komunikacja w chmurze | Wymagane |
Cloud Storage | Wymagane |
Linki dynamiczne | Wymagane |
Baza danych czasu rzeczywistego | Wymagane |
Zdalna konfiguracja | Wymagane |
AdMob i Usługi Google Play
Większość wersji pakietu SDK do reklam mobilnych Google na Androida działa prawidłowo 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.
Zainicjowanie AdMob zwraca wartość kInitResultFailedMissingDependency
tylko wtedy, gdy są spełnione oba te warunki:
- Usługi Google Play są niedostępne na urządzeniu klienckim.
- Używasz
com.google.android.gms:play-services-ads-lite
.
Konfigurowanie przepływu pracy na komputerze (beta)
Gdy tworzysz grę, często łatwiej jest najpierw przetestować ją na platformach stacjonarnych, a później wdrożyć i przetestować na urządzeniach mobilnych. Aby ułatwić ten przepływ pracy, udostępniamy podzbiór pakietów SDK Firebase w C++, które mogą działać w systemach Windows, macOS i Linux oraz w edytorze C++.
W przypadku pracy na komputerze musisz wykonać te czynności:
- Skonfiguruj projekt C++ pod kątem CMake.
- Tworzenie projektu Firebase
- Rejestrowanie aplikacji (na iOS lub Androida) za pomocą Firebase
- Dodaj plik konfiguracji Firebase platformy mobilnej
Utwórz wersję komputerową pliku konfiguracji Firebase:
Jeśli dodano plik
google-services.json
dotyczący Androida – gdy uruchomisz aplikację, Firebase znajdzie ten plik mobilny, a następnie automatycznie wygeneruje plik konfiguracyjny Firebase na komputery (google-services-desktop.json
).Jeśli dodano plik
GoogleService-Info.plist
dla iOS – zanim uruchomisz aplikację, musisz przekonwertować ten plik mobilny do pliku konfiguracyjnego Firebase na komputery. Aby przekonwertować plik, uruchom to polecenie w tym samym katalogu co plikGoogleService-Info.plist
:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
Ten plik konfiguracyjny na komputery zawiera identyfikator projektu C++ podany podczas konfiguracji konsoli Firebase. Więcej informacji o plikach konfiguracji znajdziesz w artykule Omówienie projektów Firebase.
Dodaj pakiety SDK Firebase do projektu C++.
Poniższe kroki to przykład dodawania dowolnej obsługiwanej usługi Firebase do projektu w C++. W tym przykładzie opisujemy, jak dodać Uwierzytelnianie Firebase i Bazę danych czasu rzeczywistego Firebase.
Ustaw zmienną środowiskową
FIREBASE_CPP_SDK_DIR
na lokalizację rozpakowanego pakietu SDK Firebase w C++.Do pliku
CMakeLists.txt
projektu dodaj poniższą treść, w tym biblioteki usług Firebase, których chcesz używać. 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ę w języku C++.
Dostępne biblioteki (na komputerze)
Pakiet Firebase C++ SDK obejmuje obsługę przepływu pracy na komputerach w przypadku podzbioru funkcji, dzięki czemu niektóre części Firebase mogą być używane w samodzielnych kompilacjach na komputery z systemami Windows, macOS i Linux.
Usługa Firebase | Odwołania do bibliotek (przy użyciu CMake) |
---|---|
Sprawdzanie aplikacji |
firebase_app_check (wymagane) firebase_app
|
Uwierzytelnianie |
firebase_auth (wymagane) firebase_app
|
Cloud Firestore |
firebase_firestore firebase_auth firebase_app
|
Funkcje Cloud |
firebase_functions (wymagane) firebase_app
|
Cloud Storage, |
firebase_storage (wymagane) firebase_app
|
Baza danych czasu rzeczywistego |
firebase_database (wymagane) firebase_app
|
Zdalna konfiguracja |
firebase_remote_config (wymagane) firebase_app
|
Dla wygody użytkowników Firebase udostępnia pozostałe biblioteki na komputery jako wersje skrócone (niefunkcjonalne) podczas tworzenia aplikacji na systemy Windows, macOS i Linux. Dzięki temu nie musisz warunkowo kompilować kodu kierowanego na komputer.
Baza danych czasu rzeczywistego (Realtime Database) na komputerze
Pakiet SDK bazy danych czasu rzeczywistego na komputery uzyskuje dostęp do bazy danych za pomocą REST, dlatego musisz zadeklarować indeksy, których używasz z Query::OrderByChild()
na komputerze. W przeciwnym razie odbiorniki przestaną działać.
Dodatkowe informacje o konfigurowaniu ustawień na komputerze
Biblioteki systemu Windows
W przypadku systemu Windows wersje bibliotek są dostarczane w oparciu o te ustawienia:
- Platforma kompilacji: tryb 32-bitowy (x86) i 64-bitowy (x64)
- Środowisko wykonawcze Windows: wielowątkowa / MT a wielowątkowa biblioteka DLL /MD
- Cel: wersja a debugowanie
Pamiętaj, że biblioteki wymienione poniżej zostały przetestowane przy użyciu Visual Studio w wersjach 2015 i 2017.
Gdy tworzysz aplikacje komputerowe w C++ w systemie Windows, połącz z projektem poniższe biblioteki pakietu Windows SDK. Więcej informacji znajdziesz w dokumentacji kompilatora.
Biblioteka Firebase C++ | Zależności bibliotek Windows SDK |
---|---|
Sprawdzanie aplikacji | advapi32, ws2_32, crypt32 |
Uwierzytelnianie | 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 |
Baza danych czasu rzeczywistego | advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv |
Zdalna konfiguracja | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
Biblioteki systemu macOS
W przypadku systemu macOS (Darwin) udostępniane są wersje biblioteki dla platformy 64-bitowej (x86_64). Dla Twojej wygody zapewniamy również platformy.
Biblioteki systemu macOS zostały przetestowane przy użyciu Xcode 13.3.1.
Podczas tworzenia aplikacji komputerowych w języku C++ w systemie macOS połącz z projektem te elementy:
pthread
biblioteka systemowa- Platforma systemu macOS
CoreFoundation
- Platforma systemu macOS
Foundation
- Platforma systemu macOS
Security
- Platforma systemu macOS
GSS
- Platforma systemu macOS
Kerberos
- Platforma systemu macOS
SystemConfiguration
Więcej informacji znajdziesz w dokumentacji kompilatora.
Biblioteki Linuksa
W systemie Linux dostępne są wersje biblioteki dla platform 32-bitowych (i386) i 64-bitowych (x86_64).
Zwróć uwagę, że biblioteki Linuksa zostały przetestowane w GCC 4.8.0, GCC 7.2.0 i Clang 5.0 w systemie Ubuntu.
Gdy tworzysz aplikacje komputerowe w C++ na Linuksie, połącz bibliotekę systemową pthread
ze swoim projektem. Więcej informacji znajdziesz w dokumentacji kompilatora. Jeśli tworzysz treści przy użyciu GCC 5 lub nowszej wersji, zdefiniuj -D_GLIBCXX_USE_CXX11_ABI=0
.
Dalsze kroki
Zobacz przykładowe aplikacje Firebase.
Zapoznaj się z pakietem SDK open source na GitHubie.
Przygotowanie do wprowadzenia aplikacji:
- W konsoli Google Cloud skonfiguruj alerty dotyczące budżetu dla swojego projektu.
- Monitoruj wykorzystanie i płatności panel w konsoli Firebase, aby mieć ogólny obraz wykorzystania projektu w wielu usługach Firebase.
- Zapoznaj się z listą kontrolną uruchamiania Firebase.