Ulepsz swoje gry w C++, korzystając z pakietów SDK Firebase C++, które zapewniają interfejs C++ na poziomie pakietów SDK Firebase.
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.
Masz już dodaną Firebase do swojego projektu w C++? Upewnij się, że używasz najnowszej wersji pakietu SDK Firebase C++.
Wymagania wstępne
Zainstaluj następujące elementy:
- Xcode 13.3.1 lub nowsza wersja
- CocoaPods w wersji 1.12.0 lub nowszej
Upewnij się, że Twój projekt jest kierowany na te wersje platformy lub nowsze:
- iOS 13
- tvOS 13
Skonfiguruj urządzenie fizyczne lub użyj symulatora, aby uruchomić aplikację.
Zaloguj się w Firebase za pomocą 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 [EN] Understanding Firebase Projects.
Krok 3. Zarejestruj aplikację w Firebase
Aby korzystać z Firebase w aplikacji na urządzenia Apple, 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ę iOS+, aby uruchomić proces konfiguracji.
Jeśli aplikacja została już dodana do projektu Firebase, kliknij Dodaj aplikację, aby wyświetlić opcje platformy.
W polu Identyfikator pakietu wpisz identyfikator pakietu aplikacji.
(Opcjonalnie) Podaj inne informacje o aplikacji: Pseudonim aplikacji i Identyfikator sklepu z aplikacjami.
Kliknij Zarejestruj aplikację.
Krok 4. Dodaj plik konfiguracji Firebase
Aby pobrać plik konfiguracji Firebase dla platform Apple, kliknij Pobierz plik GoogleService-Info.plist.
Otwórz projekt C++ w IDE, a potem przeciągnij plik konfiguracji do katalogu głównego projektu C++.
Jeśli pojawi się taka prośba, wybierz opcję dodania pliku konfiguracyjnego do wszystkich docelowych urządzeń.
Zadania konfiguracyjne w konsoli Firebase są już wykonane. Poniżej dowiedz się więcej o dodawaniu pakietów SDK Firebase C++.
Krok 5. Dodaj pakiety SDK Firebase w 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 potem rozpakuj go w dogodnym miejscu.
Pakiet SDK Firebase C++ nie jest przeznaczony tylko dla jednej platformy, ale zawiera biblioteki dla konkretnych platform.
Dodaj podpakiety Firebase z rozpakowanego pakietu SDK.
Utwórz plik Podfile, jeśli go nie masz:
cd your-app-directory
pod init
Dodaj do pliku Podfile moduły Firebase, których chcesz używać w aplikacji.
Włączono kryterium Analytics
# Add the Firebase pod for Google Analytics pod 'FirebaseAnalytics'
# Add the pods for any other Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'Funkcja Analytics nie została włączona
# Add the pods for the Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'
Zainstaluj moduły, a potem otwórz plik
.xcworkspace
w Xcode.pod install
open your-app.xcworkspace
Dodaj ramy Firebase z rozpakowanego pakietu SDK.
Najłatwiej dodać te frameworki, przeciągając je z okna
Finder
bezpośrednio do panelu Nawigacja projektu w Xcode (domyślnie jest to panel w lewym górnym rogu; możesz też kliknąć ikonę pliku w lewym górnym rogu Xcode).Dodaj framework Firebase w C++
firebase.framework
, który jest wymagany do korzystania z jakiejkolwiek usługi Firebase.Dodaj framework dla każdej usługi Firebase, której chcesz użyć. Na przykład, aby użyć właściwości Firebase Authentication, dodaj
firebase_auth.framework
.
Wróć do konsoli Firebase i w procesie konfiguracji kliknij Dalej.
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ąć ten krok weryfikacji.
W logach urządzenia pojawi się weryfikacja Firebase, która potwierdza, że inicjalizacja została zakończona. Jeśli uruchomiłeś aplikację na emulatorze 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 open source na GitHub.
Biblioteki dostępne dla platform Apple
Biblioteki C++ na Androida znajdziesz na tej stronie konfiguracji na Androida.
Każda usługa Firebase ma inne zależności. Pamiętaj, aby dodać do pliku Podfile i projektu C++ wszystkie wymienione zależności odpowiedniej usługi Firebase.
Każdy produkt Firebase może obsługiwać tylko wybrane platformy Apple (iOS, tvOS itp.). Sprawdź, na których platformach działają poszczególne biblioteki, w artykule Więcej informacji o C++ i Firebase.
Usługa Firebase | Frameworki i bloki reklamowe |
---|---|
AdMob |
(wymagane) firebase.framework firebase_admob.framework (wymagane) firebase_analytics.framework pod 'FirebaseAdMob', '11.4.2' (wymagane) pod 'FirebaseAnalytics', '11.4.2'
|
Analytics |
(wymagane) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '11.4.2'
|
App Check |
(wymagane) firebase.framework firebase_app_check.framework pod 'FirebaseAppCheck', '11.4.2'
|
Authentication |
(wymagane) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '11.4.2'
|
Cloud Firestore |
(wymagane) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '11.4.2' pod 'FirebaseAuth', '11.4.2'
|
Cloud Functions |
(wymagane) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '11.4.2'
|
Cloud Messaging |
(wymagany) firebase.framework firebase_messaging.framework (zalecane) firebase_analytics.framework pod 'FirebaseMessaging', '11.4.2' (zalecane) pod 'FirebaseAnalytics', '11.4.2'
|
Cloud Storage |
(wymagane) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '11.4.2'
|
Dynamic Links |
(wymagane) firebase.framework firebase_dynamic_links.framework (zalecane) firebase_analytics.framework pod 'FirebaseDynamicLinks', '11.4.2' (zalecane) pod 'FirebaseAnalytics', '11.4.2'
|
Realtime Database |
(wymagane) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '11.4.2'
|
Remote Config |
(wymagany) firebase.framework firebase_remote_config.framework (zalecane) firebase_analytics.framework pod 'FirebaseRemoteConfig', '11.4.2' (zalecane) pod 'FirebaseAnalytics', '11.4.2'
|
Dodatkowe informacje o konfiguracji na urządzeniu mobilnym
Podmiana metody
W systemie iOS niektóre zdarzenia aplikacji (takie jak otwieranie adresów URL i otrzymywanie powiadomień) wymagają przekazania dostępu do aplikacji do implementacji określonych metod. Na przykład otrzymanie powiadomienia może wymagać implementacji application:didReceiveRemoteNotification:
przez delegowanego obiektu aplikacji. Każda aplikacja na iOS ma własnego delegowanego obiektu aplikacji, więc Firebase używa przełączania metod, aby zastąpić jedną metodę inną, a także dołączyć własne moduły obsługi do tych, które zostały przez Ciebie zaimplementowane.
Biblioteki Dynamic Links i Cloud Messaging muszą dołączać moduły do delegata aplikacji za pomocą metody swizzle. Jeśli używasz którejś z tych usług Firebase, Firebase w momencie wczytywania wykryje klasę AppDelegate
i zastąpi w niej wymagane metody, łącząc je z istniejącą implementacją metody.
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 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
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 komputera zawiera identyfikator projektu C++ wpisany podczas przepływu pracy konfiguracji konsoli Firebase. Więcej informacji o plikach konfiguracji znajdziesz w artykule Informacje o projektach 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 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 w przypadku 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
|
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. Dlatego nie musisz warunkowo kompilować kodu pod kątem wersji na komputer.
Realtime Database na komputerze
Pakiet SDK Realtime Database na komputery uzyskuje dostęp do Twojej 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 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ątkowy plik 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.
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) udostępniane są wersje biblioteki dla platformy 64-bitowej (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 systemem C++ na macOS należy połączyć z projektem:
pthread
biblioteka systemowaCoreFoundation
System operacyjny macOSFoundation
System operacyjny macOS- Platforma systemu macOS
Security
GSS
System operacyjny macOSKerberos
System operacyjny macOS- Platforma systemu macOS
SystemConfiguration
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 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 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.
- Zapoznaj się z listą kontrolną przed wdrożeniem Firebase.