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 następujące elementy:
- Xcode 13.3.1 lub nowszy
- CocoaPods 1.10.0 lub nowszy
Upewnij się, że Twój projekt jest przeznaczony dla następujących wersji platform lub nowszych:
- iOS 11
- tvOS 12
Skonfiguruj urządzenie fizyczne lub użyj symulatora, aby uruchomić swoją aplikację.
Oto wymagania wstępne dotyczące usługi Cloud Messaging na platformach Apple:
- Skonfiguruj fizyczne urządzenie Apple .
- Uzyskaj klucz Apple Push Notification Authentication Key dla swojego konta programisty Apple .
- Włącz powiadomienia push w Xcode w App > Capabilities .
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 używać Firebase w aplikacji Apple, 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ę iOS+ , aby uruchomić proces konfiguracji.
Jeśli już dodałeś aplikację do swojego projektu Firebase, kliknij Dodaj aplikację , aby wyświetlić opcje platformy.
Wprowadź identyfikator pakietu swojej aplikacji w polu Identyfikator pakietu .
Identyfikator pakietu jednoznacznie identyfikuje aplikację w ekosystemie Apple.
Znajdź swój identyfikator pakietu: otwórz swój projekt w Xcode, wybierz aplikację najwyższego poziomu w nawigatorze projektu, a następnie wybierz kartę Ogólne .
Wartością pola Identyfikator pakietu jest identyfikator pakietu (na przykład
com.yourcompany.yourproject
).Pamiętaj, że w wartości identyfikatora pakietu rozróżniana jest wielkość liter i nie można jej zmienić w przypadku tej aplikacji Firebase po jej zarejestrowaniu w projekcie Firebase.
(Opcjonalnie) Wprowadź inne informacje o aplikacji: pseudonim aplikacji i identyfikator App Store .
Pseudonim aplikacji : wewnętrzny, wygodny identyfikator widoczny tylko dla Ciebie w konsoli Firebase
App Store ID : Używany przez Firebase Dynamic Links do przekierowywania użytkowników do Twojej strony App Store oraz przez Google Analytics do importowania zdarzeń konwersji do Google Ads . Jeśli Twoja aplikacja nie ma jeszcze identyfikatora App Store, możesz dodać go później w ustawieniach projektu .
Kliknij Zarejestruj aplikację .
Krok 4 : Dodaj plik konfiguracyjny Firebase
Kliknij Pobierz GoogleService-Info.plist, aby uzyskać plik konfiguracyjny Firebase dla platform Apple.
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 projekt C++ w środowisku IDE, a następnie przeciągnij plik konfiguracyjny do katalogu głównego projektu C++.
Jeśli zostanie wyświetlony monit, wybierz opcję dodania pliku konfiguracyjnego do wszystkich celów.
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.
Dodaj pody Firebase z rozpakowanego pakietu SDK.
Utwórz plik Podfile, jeśli jeszcze go nie masz:
cd your-app-directory
pod init
Do pliku Podfile dodaj pody Firebase, których chcesz używać w swojej aplikacji.
Analityka włączona
# 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'Analityka nie jest 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 zasobniki, a następnie otwórz plik
.xcworkspace
w Xcode.pod install
open your-app.xcworkspace
Dodaj struktury Firebase z rozpakowanego pakietu SDK.
Najłatwiejszym sposobem dodania tych frameworków jest zwykle przeciągnięcie ich z okna
Finder
bezpośrednio do panelu Nawigatora projektu Xcode (domyślnie lewy panel lub kliknięcie ikony pliku w lewym górnym rogu Xcode).Dodaj platformę Firebase C++
firebase.framework
, która jest wymagana do korzystania z dowolnego produktu Firebase.Dodaj platformę dla każdego produktu Firebase, którego chcesz używać. Na przykład, aby użyć uwierzytelniania Firebase, dodaj
firebase_auth.framework
.
Wróć do konsoli Firebase, w przepływie pracy instalacji kliknij Dalej .
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ąć ten 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 produktów 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 platform Apple
Należy pamiętać, że biblioteki C++ dla systemu Android są wymienione na tej stronie konfiguracji w wersji dla systemu Android .
Każdy produkt Firebase ma inne zależności. Pamiętaj, aby dodać wszystkie wymienione zależności dla żądanego produktu Firebase do swojego projektu Podfile i C++.
Każdy produkt Firebase może obsługiwać tylko wybrane platformy Apple OS (iOS, tvOS itp.). Sprawdź, które platformy są obsługiwane przez poszczególne biblioteki w sekcji Dowiedz się więcej o C++ i Firebase .
Produkt Firebase | Frameworki i pody |
---|---|
AdMob | (wymagane) firebase.framework firebase_admob.framework (wymagane) firebase_analytics.framework pod 'FirebaseAdMob', '10.10.0' (wymagane) pod 'FirebaseAnalytics', '10.10.0' |
Analityka | (wymagane) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '10.10.0' |
Sprawdź aplikację | (wymagane) firebase.framework firebase_app_check.framework pod 'FirebaseAppCheck', '10.10.0' |
Uwierzytelnianie | (wymagane) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '10.10.0' |
Cloud Firestore | (wymagane) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '10.10.0' pod 'FirebaseAuth', '10.10.0' |
Funkcje chmury | (wymagane) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '10.10.0' |
Wiadomości w chmurze | (wymagane) firebase.framework firebase_messaging.framework (zalecane) firebase_analytics.framework pod 'FirebaseMessaging', '10.10.0' (zalecane) pod 'FirebaseAnalytics', '10.10.0' |
Magazyn w chmurze | (wymagane) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '10.10.0' |
Linki dynamiczne | (wymagane) firebase.framework firebase_dynamic_links.framework (zalecane) firebase_analytics.framework pod 'FirebaseDynamicLinks', '10.10.0' (zalecane) pod 'FirebaseAnalytics', '10.10.0' |
Baza danych czasu rzeczywistego | (wymagane) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '10.10.0' |
Zdalna konfiguracja | (wymagane) firebase.framework firebase_remote_config.framework (zalecane) firebase_analytics.framework pod 'FirebaseRemoteConfig', '10.10.0' (zalecane) pod 'FirebaseAnalytics', '10.10.0' |
Dodatkowe informacje dotyczące konfiguracji mobilnej
Zaskakująca metoda
W systemie iOS niektóre zdarzenia aplikacji (takie jak otwieranie adresów URL i odbieranie powiadomień) wymagają, aby delegat aplikacji zaimplementował określone metody. Na przykład odebranie powiadomienia może wymagać od delegata aplikacji zaimplementowania application:didReceiveRemoteNotification:
. Ponieważ każda aplikacja na iOS ma własnego pełnomocnika aplikacji, Firebase używa metody swizzling , która umożliwia zastąpienie jednej metody inną, aby dołączyć własne moduły obsługi oprócz tych, które mogłeś zaimplementować.
Biblioteki Dynamic Links i Cloud Messaging muszą dołączać procedury obsługi do delegata aplikacji za pomocą zmiany metody. Jeśli używasz któregokolwiek z tych produktów Firebase, w czasie ładowania Firebase zidentyfikuje Twoją klasę AppDelegate
i przeniesie do niej wymagane metody, łącząc wywołanie zwrotne z istniejącą implementacją metody.
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 .