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

  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 miejsc docelowych.

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 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 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'

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

    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 naszym pakiecie 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.4.2'
(wymagany) 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 (wymagany) 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 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, które umożliwia zastąpienie jednej metody inną, aby dołączyć własne moduły obsługi oprócz 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 (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ć ten proces, 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 aplikacji na 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 też 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 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 dostępne są wersje bibliotek dla platform 32-bitowych (i386) i 64-bitowych (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 kompilujesz kod za pomocą GCC 5 lub nowszej wersji, zdefiniuj -D_GLIBCXX_USE_CXX11_ABI=0.

Dalsze kroki