Dodaj Firebase do projektu C++

Ulepsz swoje gry w C++ za pomocą naszych pakietów Firebase C++ SDK, które zapewniają interfejs C++ na pakietach Firebase SDK.

Uzyskaj dostęp do Firebase w całości z poziomu kodu C++ bez konieczności pisania kodu natywnego dla platformy. Pakiet Firebase SDK tłumaczy też wiele idiomów specyficznych dla języka, których używa Firebase, na interfejs bardziej znany deweloperom 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 te elementy:

    • Xcode 16.2 lub nowsze
    • CocoaPods w wersji 1.12.0 lub nowszej
  • Sprawdź, czy projekt jest przeznaczony na te wersje platformy lub nowsze:

    • iOS 13
    • tvOS 13
  • Skonfiguruj urządzenie fizyczne lub użyj symulatora, aby uruchomić aplikację.

    W przypadku Cloud Messaging na platformach Apple wymagania wstępne są następujące:

    • Skonfiguruj fizyczne urządzenie Apple.
    • Uzyskaj klucz uwierzytelniania usługi Apple Push Notification na koncie dewelopera Apple.
    • Włącz powiadomienia push w Xcode w sekcji App > Capabilities (Aplikacja > Funkcje).

  • Zaloguj się w Firebase przy użyciu konta Google.

Krok 2. Utwórz projekt 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 Projekty Firebase.

  1. W Firebasekonsoli kliknij Dodaj projekt.

    • Aby dodać zasoby Firebase do istniejącego Google Cloudprojektu, wpisz jego nazwę lub wybierz go z menu.

    • Aby utworzyć nowy projekt, wpisz jego nazwę. Możesz też opcjonalnie edytować identyfikator projektu wyświetlany pod nazwą projektu.

  2. Jeśli pojawi się taka prośba, przeczytaj i zaakceptuj warunki usługi Firebase.

  3. Kliknij Dalej.

  4. (Opcjonalnie) skonfiguruj Google Analytics w projekcie, co umożliwi optymalne korzystanie z tych usług Firebase: Firebase A/B Testing, Cloud Messaging, Crashlytics, In-App MessagingRemote Config (w tym Personalizacja).

    Wybierz istniejące Google Analyticskonto lub utwórz nowe. Jeśli tworzysz nowe konto, wybierz Analyticslokalizację raportowania, a następnie zaakceptuj ustawienia udostępniania danych i Google Analytics warunki korzystania z usługi w przypadku projektu.

  5. Kliknij Utwórz projekt (lub Dodaj Firebase, jeśli dodajesz Firebase do istniejącego Google Cloud projektu).

Firebase automatycznie udostępnia zasoby dla Twojego projektu Firebase. Po zakończeniu procesu otworzy się strona podsumowania projektu Firebase w Firebasekonsoli.

Krok 3. Zarejestruj aplikację w Firebase

Aby korzystać z Firebase w aplikacji na urządzenia Apple, musisz zarejestrować ją w projekcie Firebase. Rejestracja aplikacji jest często nazywana „dodawaniem” aplikacji do projektu.

  1. Otwórz Firebasekonsolę.

  2. W centrum strony „Opis” projektu kliknij ikonę iOS+, aby uruchomić proces konfiguracji.

    Jeśli masz już aplikację w projekcie Firebase, kliknij Dodaj aplikację, aby wyświetlić opcje platformy.

  3. W polu bundle ID wpisz identyfikator pakietu aplikacji.

    • Identyfikator pakietu jednoznacznie identyfikuje aplikację w ekosystemie Apple.

    • Znajdź identyfikator pakietu: otwórz projekt w Xcode, wybierz aplikację najwyższego poziomu w nawigatorze projektu, a następnie wybierz kartę Ogólne.

      Wartość pola Identyfikator pakietu to identyfikator pakietu (np. com.yourcompany.yourproject).

    • Pamiętaj, że wielkość liter w wartości identyfikatora pakietu jest rozróżniana i nie można jej zmienić w przypadku tej aplikacji Firebase po zarejestrowaniu jej w projekcie Firebase.

  4. (Opcjonalnie) wpisz inne informacje o aplikacji: pseudonim aplikacjiidentyfikator App Store.

  5. Kliknij Zarejestruj aplikację.

Krok 4. Dodaj plik konfiguracyjny Firebase

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

    • Plik konfiguracyjny Firebase zawiera unikalne, ale nie tajne identyfikatory projektu i aplikacji. Więcej informacji o tym pliku znajdziesz w artykule Informacje o projektach Firebase.

    • W każdej chwili możesz ponownie pobrać plik konfiguracyjny Firebase.

    • Sprawdź, czy nazwa pliku konfiguracyjnego nie zawiera dodatkowych znaków, np. (2).

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

  3. Jeśli pojawi się prośba, wybierz opcję dodania pliku konfiguracyjnego do wszystkich miejsc docelowych.

Zadania konfiguracyjne w konsoli Firebase zostały wykonane. Przejdź do sekcji Dodawanie pakietów SDK Firebase C++ poniżej.

Krok 5. Dodaj pakiety SDK Firebase C++

Czynności opisane w tej sekcji pokazują, jak dodać obsługiwane usługi Firebase do projektu Firebase C++.

  1. 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 poszczególnych platform.

  2. Dodaj pody Firebase z rozpakowanego pakietu SDK.

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

      cd your-app-directory
      pod init

    2. Do pliku Podfile dodaj pody Firebase, których chcesz używać w aplikacji.

      # 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'
      # 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 pody, a następnie otwórz plik .xcworkspace w Xcode.

      pod install
      open your-app.xcworkspace

  3. Dodaj frameworki Firebase z rozpakowanego pakietu SDK.

    Najłatwiej jest dodać te struktury, przeciągając je z okna Finder bezpośrednio do panelu Project Navigator w Xcode (domyślnie jest to panel po lewej stronie; możesz też kliknąć ikonę pliku w lewym górnym rogu Xcode).

    1. Dodaj platformę Firebase C++ firebase.framework, która jest wymagana do korzystania z dowolnej usługi Firebase.

    2. Dodaj framework dla każdej usługi Firebase, której chcesz używać. Na przykład, aby użyć właściwości Firebase Authentication, dodaj firebase_auth.framework.

  4. Wróć do konsoli Firebase i w przepływie pracy konfiguracji kliknij Dalej.

  5. Jeśli dodasz Analytics, uruchom aplikację, aby wysłać do Firebase weryfikację, że udało Ci się zintegrować Firebase. W przeciwnym razie możesz pominąć ten krok weryfikacji.

    W logach 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, Firebasekonsola powiadomi Cię o zakończeniu połączenia z aplikacją.

Wszystko gotowe. Aplikacja w C++ jest zarejestrowana i skonfigurowana do korzystania z usług Firebase.

Dostępne biblioteki

Więcej informacji o bibliotekach Firebase C++ znajdziesz w dokumentacji i w naszej wersji SDK open source na GitHubie.

Dostępne biblioteki dla platform Apple

Pamiętaj, że biblioteki C++ na Androida są wymienione na stronie konfiguracji w wersji na Androida.

Każda usługa Firebase ma inne zależności. Pamiętaj, aby dodać do pliku Podfile i projektu C++ wszystkie zależności wymienione w przypadku wybranej usługi Firebase.

Każda usługa Firebase może obsługiwać tylko wybrane platformy systemów operacyjnych Apple (iOS, tvOS itp.). Sprawdź, które platformy są obsługiwane przez poszczególne biblioteki, w sekcji Więcej informacji o C++ i Firebase.

Usługa Firebase Frameworki i pody
AdMob (wymagany) firebase.framework
firebase_admob.framework
(wymagany) firebase_analytics.framework

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

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

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

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

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

pod 'FirebaseFunctions', '12.0.0'
Cloud Messaging (wymagany) firebase.framework
firebase_messaging.framework
(zalecany) firebase_analytics.framework

pod 'FirebaseMessaging', '12.0.0'
(zalecany) pod 'FirebaseAnalytics', '12.0.0'
Cloud Storage (wymagane) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '12.0.0'
Dynamic Links (wymagany) firebase.framework
firebase_dynamic_links.framework
(zalecany) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '12.0.0'
(zalecany) pod 'FirebaseAnalytics', '12.0.0'
Realtime Database (wymagane) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '12.0.0'
Remote Config (wymagany) firebase.framework
firebase_remote_config.framework
(zalecany) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '12.0.0'
(zalecany) pod 'FirebaseAnalytics', '12.0.0'

Dodatkowe informacje o konfiguracji na urządzeniach mobilnych

Podmiana metody

W systemie iOS niektóre zdarzenia aplikacji (np. otwieranie adresów URL i otrzymywanie powiadomień) wymagają, aby delegat aplikacji implementował określone metody. Na przykład otrzymanie powiadomienia może wymagać, aby delegat aplikacji implementował metodę application:didReceiveRemoteNotification:. Każda aplikacja na iOS ma własny delegat, więc Firebase używa zamiany metod, która umożliwia zastąpienie jednej metody inną, aby dołączyć własne procedury obsługi oprócz tych, które mogłeś(-aś) zaimplementować.

Biblioteki Dynamic LinksCloud Messaging muszą dołączać procedury obsługi do delegata aplikacji za pomocą zamiany metod. Jeśli używasz którejś z tych usług Firebase, w momencie wczytywania Firebase zidentyfikuje Twoją klasę AppDelegate i zamieni w niej wymagane metody, łącząc wywołanie z powrotem z dotychczasową implementacją metody.

Konfigurowanie przepływu pracy na komputerze (wersja beta)

Podczas tworzenia gry często łatwiej jest najpierw przetestować ją na platformach desktopowych, a potem wdrożyć i przetestować na urządzeniach mobilnych w późniejszej fazie rozwoju. 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++.

  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 konfiguracyjnego Firebase na platformę mobilną
  2. Utwórz wersję na komputery pliku konfiguracyjnego Firebase:

    • Jeśli dodasz plik google-services.json na Androida – gdy uruchomisz aplikację, Firebase znajdzie ten plik mobilny, a potem automatycznie wygeneruje plik konfiguracyjny Firebase na komputery (google-services-desktop.json).

    • Jeśli dodano plik GoogleService-Info.plist na iOS – 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 plik GoogleService-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 podczas konfigurowania konsoli. Więcej informacji o plikach konfiguracyjnych znajdziesz w artykule Informacje o projektach Firebase.

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

    Poniższe czynności pokazują, jak dodać do projektu C++ dowolną obsługiwaną usługę Firebase. W tym przykładzie pokażemy, jak dodać tagi 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 poniższą treść, 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++ 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 (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 w postaci implementacji typu stub (niefunkcjonalnych), aby ułatwić tworzenie aplikacji na Windowsa, macOS i Linuksa. Dlatego nie musisz warunkowo kompilować kodu, aby kierować go 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 bibliotek 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 16.2.

Podczas tworzenia aplikacji na komputery z systemem macOS w języku C++ połącz z projektem te elementy:

  • pthread biblioteka systemowa
  • CoreFoundation platforma systemowa macOS,
  • Foundation platforma systemowa macOS,
  • Security platforma systemowa macOS,
  • GSS platforma systemowa macOS,
  • Kerberos platforma systemowa macOS,
  • SystemConfiguration platforma 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).

Pamiętaj, że biblioteki Linuxa były testowane przy użyciu 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 bibliotekę systemową pthread z projektem. 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