Ulepsz swoje gry w C++ za pomocą naszych pakietów SDK Firebase w C++, które zapewniają interfejs C++ na podstawie pakietów SDK Firebase.
Uzyskaj dostęp do Firebase w całości z poziomu kodu C++ bez konieczności pisania kodu natywnego dla platformy. Pakiet SDK Firebase tłumaczy też wiele idiomów specyficznych dla języka używanych przez Firebase na interfejs bardziej znany programistom C++.
Więcej informacji o ulepszaniu gier za pomocą Firebase znajdziesz na naszej stronie poświęconej grom w Firebase.
Czy Firebase został już dodany do projektu C++? Upewnij się, że używasz najnowszej wersji Firebase C++ SDK.
Wymagania wstępne
Zainstaluj preferowany edytor lub IDE, np. Android Studio, IntelliJ lub VS Code.
Pobierz Android SDK.
Upewnij się, że Twój projekt spełnia te wymagania:
kierować aplikację co najmniej na poziom API 23 (Marshmallow);
Korzysta z Gradle i jest skonfigurowany za pomocą CMake.
Skonfiguruj urządzenie fizyczne lub użyj emulatora, aby uruchomić aplikację.
Zaloguj się w Firebase za pomocą konta Google.
Krok 2. Utwórz projekt w Firebase
Zanim dodasz Firebase do projektu C++, musisz utworzyć projekt Firebase, aby połączyć go z projektem C++. Więcej informacji o projektach Firebase znajdziesz w artykule Informacje o projektach Firebase.
Krok 3. Zarejestruj aplikację w Firebase
Aby korzystać z Firebase w aplikacji na Androida, musisz zarejestrować aplikację w projekcie w Firebase. Rejestracja aplikacji jest często nazywana „dodawaniem” aplikacji do projektu.
Otwórz Firebasekonsolę.
W centrum strony „Opis” projektu kliknij ikonę Android lub Dodaj aplikację, aby uruchomić proces konfiguracji.
Wpisz nazwę pakietu aplikacji w polu Nazwa pakietu na Androida.
(Opcjonalnie) wpisz pseudonim aplikacji, czyli wewnętrzny identyfikator ułatwiający rozpoznawanie aplikacji, który jest widoczny tylko dla Ciebie w konsoli Firebase.
Kliknij Zarejestruj aplikację.
Krok 4. Dodaj plik konfiguracyjny Firebase
Kliknij Pobierz plik google-services.json, aby uzyskać plik konfiguracyjny Firebase Android.
Otwórz projekt C++ w IDE, a potem dodaj do niego plik konfiguracyjny:
Kompilacje Gradle – dodaj plik konfiguracyjny do tego samego katalogu co plik
build.gradlenajwyższego poziomu.Inne systemy kompilacji – aby wygenerować zasoby tekstowe Androida, zapoznaj się z sekcją Niestandardowe systemy kompilacji poniżej.
(Tylko kompilacje Gradle) Aby włączyć usługi Firebase w projekcie C++, dodaj wtyczkę Gradle usług Google do pliku
build.gradlenajwyż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.5.0' // Google services Gradle plugin implementation 'com.google.android.gms:18.11.0' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }Zastosuj wtyczkę Gradle do usług Google:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google services Gradle plugin android { // ... }
Zadania konfiguracyjne w konsoli Firebase zostały wykonane. Poniżej znajdziesz instrukcje dodawania pakietów SDK Firebase C++.
Krok 5. Dodaj pakiety SDK Firebase C++
Czynności opisane w tej sekcji pokazują, jak dodać obsługiwane usługi Firebase do projektu Firebase w C++.
Pobierz Firebase C++ SDK, a następnie rozpakuj go w dogodnym miejscu.
Pakiet SDK Firebase C++ nie jest przeznaczony dla konkretnej platformy, ale zawiera biblioteki specyficzne dla platformy.
W pliku
gradle.propertiesprojektu określ lokalizację rozpakowanego pakietu SDK:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
Dodaj do pliku
settings.gradleprojektu te wiersze: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 poniższą zawartość.
Uwzględnij zależności biblioteki dla usług Firebase, których chcesz używać w aplikacji.Model Analytics został włączony
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 }
Nie włączono Analytics
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.txtprojektu te wiersze:
Dołącz biblioteki produktów Firebase, których chcesz używać w aplikacji.Model Analytics został włączony
# 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}")
Nie włączono Analytics
# 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 weryfikację, że integracja z Firebase została przeprowadzona prawidłowo. W przeciwnym razie możesz pominąć krok weryfikacji.
W dziennikach urządzenia pojawi się informacja o weryfikacji Firebase, że inicjowanie zostało zakończone. Jeśli aplikacja została uruchomiona na emulatorze z dostępem do sieci, Firebase konsola powiadomi Cię o zakończeniu połączenia z aplikacją.
To już wszystko Aplikacja w C++ jest zarejestrowana i skonfigurowana pod kątem korzystania z usług Firebase.
Dostępne biblioteki
Więcej informacji o bibliotekach Firebase w C++ znajdziesz w dokumentacji i w naszej wersji SDK open source na GitHubie.
Dostępne biblioteki na Androida (z użyciem CMake)
Pamiętaj, że biblioteki C++ na platformy Apple są wymienione w wersji tej strony dotyczącej konfiguracji na platformy Apple (iOS+).
| Usługa Firebase | Odniesienia do bibliotek ( firebaseCpp.dependenciesw przypadku pliku build.gradle) |
Odniesienia do bibliotek ( firebase_libsw przypadku pliku CMakeLists.txt) |
|---|---|---|
| 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(wymagane) firebase_auth(wymagane) firebase_app
|
| Cloud Functions | functions |
firebase_functions(wymagane) firebase_app
|
| Cloud Messaging | messaging |
firebase_messaging(zalecane) firebase_analytics(wymagane) firebase_app
|
| Cloud Storage | storage |
firebase_storage(wymagane) firebase_app
|
| Realtime Database | database |
firebase_database(wymagane) firebase_app
|
| Remote Config | remoteConfig |
firebase_remote_config(zalecane) firebase_analytics(wymagane) firebase_app
|
| PRZESTARZAŁE LUB NIEWSPIERANE BIBLIOTEKI | ||
| Dynamic Links | dynamicLinks |
firebase_dynamic_links(zalecane) firebase_analytics(wymagane) firebase_app
|
Dodatkowe informacje o konfiguracji na urządzeniu mobilnym
Otrzymywanie 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 Uzyskiwanie raportów o awariach w Android NDK.
Niestandardowe systemy kompilacji
Firebase udostępnia skrypt generate_xml_from_google_services_json.py do konwertowania zasobów google-services.json na zasoby .xml, które możesz uwzględnić w projekcie. Ten skrypt stosuje taką samą transformację jak wtyczka Gradle do usług Google Play podczas kompilowania aplikacji na Androida.
Jeśli nie używasz Gradle do kompilacji (np. używasz ndk-build, plików makefile, Visual Studio itp.), możesz użyć tego skryptu do zautomatyzowania generowania zasobów ciągów tekstowych Androida.
ProGuard
Wiele systemów kompilacji na Androida używa ProGuarda do kompilacji w trybie wydania, aby zmniejszyć rozmiar aplikacji i chronić kod źródłowy w Javie.
Jeśli używasz ProGuard, musisz dodać pliki w libs/android/*.proodpowiadające bibliotekom Firebase C++, których używasz w konfiguracji ProGuard.
Jeśli na przykład używasz Gradle, a w nim 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 na urządzeniu klienta z Androidem były zainstalowane usługi Google Play. Jeśli biblioteka Firebase C++ zwraca wartość kInitResultFailedMissingDependency podczas inicjowania, oznacza to, że Usługi Google Play są niedostępne na urządzeniu klienta (co oznacza, że trzeba je zaktualizować, ponownie aktywować, naprawić uprawnienia itp.). Biblioteki Firebase nie można używać, dopóki sytuacja na urządzeniu klienta nie zostanie naprawiona.
Możesz dowiedzieć się, dlaczego usługi Google Play są niedostępne na urządzeniu klienta (i spróbować to naprawić), korzystając z funkcji w google_play_services/availability.h.
W tabeli poniżej znajdziesz informacje o tym, czy w przypadku poszczególnych obsługiwanych usług 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? |
|---|---|
| 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 |
Konfigurowanie przepływu pracy na komputerze (beta)
Podczas tworzenia gry często łatwiej jest najpierw przetestować ją na platformach desktopowych, a potem wdrożyć i przetestować na urządzeniach mobilnych. Aby obsługiwać ten proces, udostępniamy podzbiór pakietów SDK Firebase C++, które mogą działać 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 w Firebase
- Rejestrowanie aplikacji (na iOS lub Androida) w Firebase
- Dodawanie pliku konfiguracyjnego Firebase na platformę mobilną
Utwórz wersję na komputery pliku konfiguracyjnego Firebase:
Jeśli dodasz plik
google-services.jsonna 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.plistiOS – przed uruchomieniem aplikacji musisz przekonwertować ten plik mobilny na plik konfiguracyjny 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 komputerze zawiera identyfikator projektu C++, który został wpisany w Firebase przepływie pracy konfiguracji konsoli. Więcej informacji o plikach konfiguracyjnych znajdziesz w artykule Informacje o projektach Firebase.
Dodaj pakiety SDK Firebase do projektu C++.
Poniższe kroki pokazują, jak dodać do projektu w C++ dowolną obsługiwaną usługę Firebase. W tym przykładzie pokażemy, jak dodać Firebase Authentication i Firebase Realtime Database.
Ustaw zmienną środowiskową
FIREBASE_CPP_SDK_DIRna lokalizację rozpakowanego pakietu SDK Firebase C++.Do pliku
CMakeLists.txtprojektu dodaj te wiersze, 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++ obejmuje obsługę przepływu pracy na komputerze w przypadku podzbioru funkcji, co umożliwia korzystanie z określonych części Firebase w samodzielnych kompilacjach na komputery z systemem Windows, macOS i Linux.
| Usługa Firebase | Odwołania do bibliotek (przy użyciu CMake) |
|---|---|
| App Check |
firebase_app_check(wymagane) firebase_app
|
| Authentication |
firebase_auth(wymagane) firebase_app
|
| Cloud Firestore |
firebase_firestorefirebase_authfirebase_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
|
Pozostałe biblioteki na komputery Firebase udostępnia jako implementacje typu stub (niefunkcjonalne), aby ułatwić tworzenie aplikacji na Windows, macOS i Linux. Dlatego nie musisz warunkowo kompilować kodu, aby kierować reklamy na komputery.
Realtime Database komputer
Pakiet Realtime Database SDK na komputery korzysta z REST do uzyskiwania dostępu do bazy danych, więc musisz zadeklarować indeksy, których używasz z Query::OrderByChild() na komputerze, w przeciwnym razie Twoje odbiorniki nie będą działać.
Dodatkowe informacje o konfiguracji na komputerze
Biblioteki systemu Windows
W przypadku systemu Windows wersje biblioteki są udostępniane na podstawie tych kryteriów:
- Platforma kompilacji: tryb 32-bitowy (x86) lub 64-bitowy (x64)
- Środowisko wykonawcze Windows: wielowątkowe / MT vs wielowątkowe DLL /MD
- Cel: wersja a debugowanie
Pamiętaj, że poniższe biblioteki zostały przetestowane w Visual Studio 2015 i 2017.
Podczas tworzenia aplikacji na komputery z systemem Windows w języku C++ połącz z projektem te biblioteki pakietu Windows SDK: Więcej informacji znajdziesz w dokumentacji kompilatora.
| Biblioteka Firebase C++ | Zależności biblioteki pakietu SDK 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) wersje bibliotek są udostępniane na platformę 64-bitową (x86_64). Dla Twojej wygody udostępniamy też platformy.
Pamiętaj, że biblioteki macOS zostały przetestowane w Xcode 26.2.
Podczas tworzenia aplikacji na komputery z systemem macOS w języku C++ połącz z projektem te elementy:
pthreadbiblioteka systemowaCoreFoundationplatforma systemowa macOS,Foundationplatforma systemowa macOS,Securityplatforma systemowa macOS,GSSplatforma systemowa macOS,Kerberosplatforma systemowa macOS,SystemConfigurationplatforma systemowa macOS,
Więcej informacji znajdziesz w dokumentacji kompilatora.
Biblioteki Linuksa
W przypadku systemu Linux wersje bibliotek są udostępniane na platformy 32-bitowe (i386) i 64-bitowe (x86_64).
Biblioteki Linuxa zostały przetestowane przy użyciu kompilatorów GCC 4.8.0, GCC 7.2.0 i Clang 5.0 w systemie Ubuntu.
Podczas tworzenia aplikacji na komputery z systemem Linux w języku C++ połącz z projektem pthread bibliotekę systemową. Więcej informacji znajdziesz w dokumentacji kompilatora. Jeśli tworzysz aplikację za pomocą GCC w wersji 5 lub nowszej, zdefiniuj -D_GLIBCXX_USE_CXX11_ABI=0.
Dalsze kroki
Poznaj przykładowe aplikacje Firebase.
Przygotuj się do uruchomienia aplikacji:
- Skonfiguruj alerty dotyczące budżetu dla projektu w Google Cloud konsoli.
- Monitoruj panel Wykorzystanie i rozliczenia w Firebase konsoli, aby uzyskać ogólny obraz wykorzystania projektu w wielu usługach Firebase.
- Zapoznaj się z listą kontrolną dotyczącą uruchamiania Firebase.