Dodaj Firebase do projektu C++

Ulepsz swoje gry w C++, korzystając z pakietów Firebase C++ SDK, które udostępniają interfejs C++ na bazie pakietów Firebase SDK.

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.

Czy Firebase zostało już dodane do projektu C++? Upewnij się, że używasz najnowszej wersji pakietu SDK Firebase C++.


Wymagania wstępne

  • Zainstaluj te elementy:

    • Xcode 13.3.1 lub nowsza
    • 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 fizyczne urządzenie lub uruchom aplikację za pomocą symulatora.

  • 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 Zrozumieć projekty Firebase.

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.

  1. Otwórz konsolę Firebase.

  2. 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.

  3. W polu Identyfikator pakietu wpisz identyfikator pakietu aplikacji.

  4. (Opcjonalnie) Wpisz inne informacje o aplikacji: nazwę skrótową aplikacjiidentyfikator App Store.

  5. Kliknij Zarejestruj aplikację.

Krok 4. Dodaj plik konfiguracji Firebase

  1. Kliknij Pobierz plik GoogleService-Info.plist, aby pobrać plik konfiguracji Firebase dla platform Apple.

  2. Otwórz projekt C++ w IDE, a potem przeciągnij plik konfiguracji do katalogu głównego projektu C++.

  3. Jeśli pojawi się taka prośba, wybierz opcję dodania pliku konfiguracyjnego do wszystkich docelowych urządzeń.

Zakończ konfigurowanie w konsoli Firebase. Poniżej dowiedz się więcej o dodawaniu pakietów SDK Firebase C++.

Krok 5. Dodaj pakiety SDK Firebase C++

W tej sekcji znajdziesz przykład dodawania obsługiwanych usług Firebase do projektu Firebase C++.

  1. Pobierz pakiet SDK Firebase C++, a potem rozpakuj go w wygodnym miejscu.

    Pakiet SDK Firebase C++ nie jest przeznaczony tylko dla jednej platformy, ale zawiera biblioteki dla konkretnych platform.

  2. Dodaj podpakiety Firebase z rozpakowanego pakietu SDK.

    1. Utwórz plik Podfile, jeśli go nie masz:

      cd your-app-directory
      pod init

    2. Dodaj do pliku Podfile moduły Firebase, których chcesz używać w aplikacji.

      Włączono 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'

      Analytics 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'
    3. Zainstaluj moduły, a potem otwórz plik .xcworkspace w Xcode.

      pod install
      open your-app.xcworkspace

  3. Dodaj ramy Firebase z rozpakowanego pakietu SDK.

    Najłatwiej dodać te frameworki, przeciągając je z okna Finder bezpośrednio do panelu Nawigator 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).

    1. Dodaj framework Firebase w C++ firebase.framework, który jest wymagany do korzystania z jakiejkolwiek usługi Firebase.

    2. 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.

  4. Wróć do konsoli Firebase i w procesie konfiguracji kliknij Dalej.

  5. 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 aplikacja została uruchomiona na emulatorze z dostępem do sieci, konsola Firebase powiadomi Cię, że połączenie z aplikacją zostało ustanowione.

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 naszej wersji pakietu SDK open source na GitHub.

Dostępne biblioteki na platformach Apple

Uwaga: biblioteki C++ na Androida są wymienione na stronie konfiguracji dla 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 (wymagany) firebase.framework
firebase_admob.framework
(wymagany) firebase_analytics.framework

pod 'FirebaseAdMob', '11.6.0'
(wymagany) pod 'FirebaseAnalytics', '11.6.0'
Analytics (wymagane) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '11.6.0'
App Check (wymagane) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '11.6.0'
Authentication (wymagane) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '11.6.0'
Cloud Firestore (wymagane) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '11.6.0'
pod 'FirebaseAuth', '11.6.0'
Cloud Functions (wymagane) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '11.6.0'
Cloud Messaging (wymagany) firebase.framework
firebase_messaging.framework
(zalecane) firebase_analytics.framework

pod 'FirebaseMessaging', '11.6.0'
(zalecane) pod 'FirebaseAnalytics', '11.6.0'
Cloud Storage (wymagane) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '11.6.0'
Dynamic Links (wymagany) firebase.framework
firebase_dynamic_links.framework
(zalecane) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '11.6.0'
(zalecane) pod 'FirebaseAnalytics', '11.6.0'
Realtime Database (wymagane) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '11.6.0'
Remote Config (wymagany) firebase.framework
firebase_remote_config.framework
(zalecane) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '11.6.0'
(zalecane) pod 'FirebaseAnalytics', '11.6.0'

Dodatkowe informacje o konfiguracji na urządzeniu mobilnym

Podmiana metody

W iOS niektóre zdarzenia aplikacji (np. otwieranie adresów URL i odbieranie powiadomień) wymagają, aby delegowany obiekt aplikacji implementował określone metody. 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 LinksCloud Messaging muszą dołączać moduły do delegata aplikacji za pomocą swizlowania metod. 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 wywołanie z istniejącą implementacją metody.

Konfigurowanie przepływu pracy na komputerze (wersja beta)

Podczas tworzenia gry często łatwiej jest najpierw przetestować ją na komputerze, a potem 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++.

  1. W przypadku przepływów pracy na komputerze musisz wykonać te czynności:

    1. Skonfiguruj projekt C++ pod kątem CMake.
    2. Tworzenie projektu Firebase
    3. Zarejestruj aplikację (na iOS lub Androida) w Firebase
    4. Dodawanie pliku konfiguracji Firebase na platformę mobilną
  2. 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 dodasz plik GoogleService-Info.plist na iOS – zanim uruchomisz aplikację, musisz przekonwertować ten plik mobilny na plik konfiguracji na komputer Firebase. Aby przekonwertować plik, uruchom to polecenie w tym samym katalogu, w którym znajduje się plik GoogleService-Info.plist:

      generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist

    Ten plik konfiguracji komputera zawiera identyfikator projektu C++, który został podany w procesie konfiguracji konsoli Firebase. Więcej informacji o plikach konfiguracji znajdziesz w artykule Informacje o projektach Firebase.

  3. Dodaj pakiety SDK Firebase do projektu C++.

    Poniżej znajdziesz przykład dodawania dowolnego obsługiwanego produktu Firebase do projektu w C++. W tym przykładzie pokazujemy dodawanie znaczników Firebase AuthenticationFirebase Realtime Database.

    1. Ustaw zmienną środowiskową FIREBASE_CPP_SDK_DIR na lokalizację rozpakowanego pakietu SDK Firebase C++.

    2. 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 AuthenticationFirebase 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}")
  4. Uruchom aplikację w C++.

Dostępne biblioteki (komputer)

Pakiet SDK Firebase C++ zawiera obsługę przepływu pracy na komputerze dla 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

Firebase udostępnia pozostałe biblioteki na komputery jako implementacje w postaci stubów (niefunkcjonalnych) dla wygody podczas kompilowania na potrzeby Windowsa, macOS i Linuxa. Dlatego nie musisz warunkowo kompilować kodu pod kątem komputerów stacjonarnych.

Realtime Database komputer

Pakiet SDK Realtime Database na komputery korzysta z protokołu REST do uzyskiwania dostępu do bazy danych, dlatego musisz zadeklarować indeksy, których używasz z Query::OrderByChild() na komputerze, ponieważ w przeciwnym razie odbiorniki nie będą 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ątkowa biblioteka DLL /MD
  • Cel: wersja produkcyjna a wersja deweloperska

Pamiętaj, że te biblioteki zostały przetestowane za pomocą Visual Studio 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) dostępne są wersje bibliotek na platformę 64-bitową (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 C++ na macOS połącz z projektem:

  • pthread biblioteka systemowa
  • CoreFoundation System operacyjny macOS
  • Foundation System operacyjny macOS
  • Security System operacyjny macOS
  • GSS System operacyjny macOS
  • Kerberos System operacyjny macOS
  • SystemConfiguration System operacyjny macOS

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 w C++ w systemie Linux połącz bibliotekę systemową pthread ze swoim projektem. Więcej informacji znajdziesz w dokumentacji kompilatora. Jeśli kompilujesz za pomocą GCC 5 lub nowszej wersji, zdefiniuj -D_GLIBCXX_USE_CXX11_ABI=0.

Dalsze kroki