Dodaj Firebase do projektu C++

Zwiększ skuteczność swoich gier w C++ dzięki pakietom SDK Firebase C++, które oprócz pakietów SDK Firebase zapewniają interfejs C++.

Uzyskaj dostęp do Firebase całkowicie z poziomu kodu C++ bez konieczności pisania kodu natywnego dla platformy. Przekształca on też wiele identyfikatorów w określonych językach używanych przez Firebase na interfejs bardziej znany programistom C++.

Więcej informacji o wzbogacaniu gier dzięki Firebase znajdziesz na stronie gier w 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 11
    • tvOS 12
  • Skonfiguruj urządzenie fizyczne lub użyj symulatora, aby uruchomić aplikację.

  • Zaloguj się w Firebase, korzystając ze swojego konta Google.

Krok 2. Utwórz projekt Firebase

Zanim dodasz Firebase do projektu w C++, musisz utworzyć projekt Firebase i połączyć go z tym projektem w C++. Więcej informacji o projektach Firebase znajdziesz w artykule Omówienie projektów Firebase.

Krok 3. Zarejestruj aplikację w Firebase

Aby używać Firebase w swojej aplikacji Apple, musisz ją zarejestrować w projekcie Firebase. Rejestracja aplikacji często nazywa się „dodaniem” jej do projektu.

  1. Otwórz konsolę Firebase.

  2. Aby uruchomić przepływ pracy konfiguracji, na środku strony przeglądu projektu kliknij ikonę iOS+.

    Jeśli masz już aplikację dodaną do projektu Firebase, kliknij Dodaj aplikację, aby wyświetlić opcje platformy.

  3. W polu identyfikator pakietu wpisz identyfikator pakietu aplikacji.

  4. (Opcjonalnie) Podaj inne informacje o aplikacji: Pseudonim aplikacji i Identyfikator sklepu z aplikacjami.

  5. Kliknij Zarejestruj aplikację.

Krok 4. Dodaj plik konfiguracji Firebase

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

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

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

Masz już za sobą konfigurowanie w konsoli Firebase. Przejdź do sekcji Dodawanie pakietów SDK Firebase w C++ poniżej.

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

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

    Pakiet SDK Firebase w C++ nie jest związany z konkretną platformą, ale zawiera biblioteki związane z tą platformą.

  2. Dodaj pody Firebase z rozpakowanego pakietu SDK.

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

      cd your-app-directory
      pod init

    2. Dodaj do pliku Podfile pody Firebase, których chcesz używać w 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'

      Statystyki nie są włączone

      # 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 platformy Firebase z rozpakowanego pakietu SDK.

    Najprostszym sposobem na dodanie tych platform jest przeciągnięcie ich z okna Finder bezpośrednio do panelu Project Navigator w Xcode (domyślnie jest to okienko w lewym górnym rogu. Można 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 platformę do każdej usługi Firebase, której chcesz używać. Aby na przykład używać uwierzytelniania Firebase, dodaj firebase_auth.framework.

  4. Gdy wrócisz do konsoli Firebase, w procesie konfiguracji kliknij Dalej.

  5. Jeśli masz już dodaną usługę Analytics, uruchom aplikację, aby wysłać do Firebase potwierdzenie, że udało Ci się zintegrować Firebase. W przeciwnym razie możesz pominąć ten etap weryfikacji.

    W dziennikach urządzenia będzie widoczna weryfikacja Firebase, że inicjowanie zostało ukończone. Jeśli uruchomiłeś aplikację za pomocą emulatora 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 typu open source w serwisie 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ć wszystkie wymienione zależności odpowiedniej usługi Firebase do pliku Podfile i projektu w C++.

Każda usługa Firebase może obsługiwać tylko wybrane platformy systemu operacyjnego Apple (iOS, tvOS itp.). Aby sprawdzić, które platformy są obsługiwane przez poszczególne biblioteki, przeczytaj artykuł Więcej informacji o C++ i Firebase.

Usługa Firebase Ramki i pody
AdMob (wymagane) firebase.framework
firebase_admob.framework
(wymagane) firebase_analytics.framework

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

pod 'FirebaseAnalytics', '10.28.1'
Sprawdzanie aplikacji (wymagane) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '10.28.1'
Uwierzytelnianie (wymagane) firebase.framework
firebase_auth.framework

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

pod 'FirebaseFirestore', '10.28.1'
pod 'FirebaseAuth', '10.28.1'
Funkcje Cloud (wymagane) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '10.28.1'
Komunikacja w chmurze (wymagane) firebase.framework
firebase_messaging.framework
(zalecane) firebase_analytics.framework

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

pod 'FirebaseStorage', '10.28.1'
Linki dynamiczne (wymagane) firebase.framework
firebase_dynamic_links.framework
(zalecane) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '10.28.1'
(zalecane) pod 'FirebaseAnalytics', '10.28.1'
Baza danych czasu rzeczywistego (wymagane) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '10.28.1'
Zdalna konfiguracja (wymagane) firebase.framework
firebase_remote_config.framework
(zalecane) firebase_analytics.framework

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

Dodatkowe informacje na temat konfiguracji telefonu komórkowego

Dostosowywanie metod

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 odebranie powiadomienia może wymagać przekazania aplikacji do wdrożenia application:didReceiveRemoteNotification:. Każda aplikacja na iOS ma własną delegację aplikacji, dlatego Firebase wykorzystuje przesuwanie metod, które umożliwia zastąpienie jednej metody drugą, do dołączania własnych modułów obsługi do tych, które zostały zaimplementowane.

Biblioteki linków dynamicznych i komunikacji w chmurze muszą dołączać moduły obsługi do przedstawicieli aplikacji za pomocą funkcji swizzingu. Jeśli korzystasz z którejś z tych usług Firebase, podczas wczytywania usługa Firebase zidentyfikuje klasę AppDelegate i połączy z nią wymagane metody, łącząc wywołanie 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 ułatwić ten przepływ pracy, udostępniamy podzbiór pakietów SDK Firebase w C++, które mogą działać w systemach Windows, macOS i Linux oraz w edytorze C++.

  1. W przypadku pracy na komputerze musisz wykonać te czynności:

    1. Skonfiguruj projekt C++ pod kątem CMake.
    2. Tworzenie projektu Firebase
    3. Rejestrowanie aplikacji (na iOS lub Androida) za pomocą Firebase
    4. Dodaj plik konfiguracji Firebase platformy mobilnej
  2. Utwórz wersję komputerową pliku konfiguracji Firebase:

    • Jeśli dodano plik google-services.json dotyczący Androida – gdy uruchomisz aplikację, Firebase znajdzie ten plik mobilny, a następnie automatycznie wygeneruje plik konfiguracyjny Firebase na komputery (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 plik GoogleService-Info.plist:

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

    Ten plik konfiguracyjny na komputery zawiera identyfikator projektu C++ podany podczas konfiguracji konsoli Firebase. Więcej informacji o plikach konfiguracji znajdziesz w artykule Omówienie projektów Firebase.

  3. 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 opisujemy, jak dodać Uwierzytelnianie Firebase i Bazę danych czasu rzeczywistego Firebase.

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

    2. Do pliku CMakeLists.txt projektu dodaj poniższą treść, w tym biblioteki usług Firebase, których chcesz używać. 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}")
      
  4. Uruchom aplikację w języku C++.

Dostępne biblioteki (na komputerze)

Pakiet Firebase C++ SDK obejmuje obsługę przepływu pracy na komputerach w przypadku podzbioru funkcji, dzięki czemu niektóre części Firebase mogą być używane w samodzielnych kompilacjach na komputery z systemami Windows, macOS i Linux.

Usługa Firebase Odwołania do bibliotek (przy użyciu CMake)
Sprawdzanie aplikacji firebase_app_check
(wymagane) firebase_app
Uwierzytelnianie firebase_auth
(wymagane) firebase_app
Cloud Firestore firebase_firestore
firebase_auth
firebase_app
Funkcje Cloud firebase_functions
(wymagane) firebase_app
Cloud Storage, firebase_storage
(wymagane) firebase_app
Baza danych czasu rzeczywistego firebase_database
(wymagane) firebase_app
Zdalna konfiguracja 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. Dzięki temu nie musisz warunkowo kompilować kodu kierowanego na komputer.

Baza danych czasu rzeczywistego (Realtime Database) na komputerze

Pakiet SDK bazy danych czasu rzeczywistego na komputery uzyskuje dostęp do 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 konfigurowaniu ustawień na komputerze

Biblioteki systemu Windows

W przypadku systemu Windows wersje bibliotek są dostarczane w oparciu o te ustawienia:

  • Platforma kompilacji: tryb 32-bitowy (x86) i 64-bitowy (x64)
  • Środowisko wykonawcze Windows: wielowątkowa / MT a wielowątkowa biblioteka 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.

Gdy tworzysz aplikacje komputerowe w C++ w systemie Windows, połącz z projektem poniższe biblioteki pakietu Windows SDK. Więcej informacji znajdziesz w dokumentacji kompilatora.

Biblioteka Firebase C++ Zależności bibliotek Windows SDK
Sprawdzanie aplikacji advapi32, ws2_32, crypt32
Uwierzytelnianie 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
Baza danych czasu rzeczywistego advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Zdalna konfiguracja advapi32, ws2_32, crypt32, rpcrt4, ole32

Biblioteki systemu macOS

W przypadku systemu macOS (Darwin) udostępniane są wersje biblioteki dla platformy 64-bitowej (x86_64). Dla Twojej wygody zapewniamy również platformy.

Biblioteki systemu macOS zostały przetestowane przy użyciu Xcode 13.3.1.

Podczas tworzenia aplikacji komputerowych w języku C++ w systemie macOS połącz z projektem te elementy:

  • pthread biblioteka systemowa
  • Platforma systemu macOS CoreFoundation
  • Platforma systemu macOS Foundation
  • Platforma systemu macOS Security
  • Platforma systemu macOS GSS
  • Platforma systemu macOS Kerberos
  • Platforma systemu macOS SystemConfiguration

Więcej informacji znajdziesz w dokumentacji kompilatora.

Biblioteki Linuksa

W systemie Linux dostępne są wersje biblioteki dla platform 32-bitowych (i386) i 64-bitowych (x86_64).

Zwróć uwagę, że biblioteki Linuksa zostały przetestowane w GCC 4.8.0, GCC 7.2.0 i Clang 5.0 w systemie Ubuntu.

Gdy tworzysz aplikacje komputerowe w C++ na Linuksie, połącz bibliotekę systemową pthread ze swoim 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