Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Dodaj Firebase do swojego projektu C++

Wzmocnij swoje gry C++ dzięki naszym zestawom SDK Firebase C++, które zapewniają interfejs C++ na bazie Firebase dla iOS i Androida.

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
  • Skonfiguruj fizyczne urządzenie z systemem iOS lub użyj symulatora systemu iOS, aby uruchomić swoją aplikację.

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

  1. Przejdź do konsoli Firebase .

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

  3. Wprowadź identyfikator pakietu swojej aplikacji w polu Identyfikator pakietu .

  4. (Opcjonalnie) Wprowadź inne informacje o aplikacji: pseudonim aplikacji i identyfikator 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.

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

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

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

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

      pod install
      open your-app.xcworkspace

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

    1. Dodaj platformę Firebase C++ firebase.framework , która jest wymagana do korzystania z dowolnego produktu Firebase.

    2. Dodaj platformę dla każdego produktu Firebase, którego chcesz używać. Na przykład, aby użyć uwierzytelniania Firebase, dodaj firebase_auth.framework .

  4. Wróć do konsoli Firebase, w przepływie pracy instalacji kliknij Dalej .

  5. 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 iOS

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

Produkt Firebase Frameworki i pody
AdMob (wymagane) firebase.framework
firebase_admob.framework
(wymagane) firebase_analytics.framework

pod 'FirebaseAdMob', '10.2.0'
(wymagane) pod 'FirebaseAnalytics', '10.2.0'
Analityka (wymagane) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '10.2.0'
Uwierzytelnianie (wymagane) firebase.framework
firebase_auth.framework

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

pod 'FirebaseFirestore', '10.2.0'
pod 'FirebaseAuth', '10.2.0'
Funkcje chmury (wymagane) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '10.2.0'
Wiadomości w chmurze (wymagane) firebase.framework
firebase_messaging.framework
(zalecane) firebase_analytics.framework

pod 'FirebaseMessaging', '10.2.0'
(zalecane) pod 'FirebaseAnalytics', '10.2.0'
Magazyn w chmurze (wymagane) firebase.framework
firebase_storage.framework

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

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

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

pod 'FirebaseRemoteConfig', '10.2.0'
(zalecane) pod 'FirebaseAnalytics', '10.2.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++.

  1. W przypadku przepływów pracy na komputerze należy wykonać następujące czynności:

    1. Skonfiguruj swój projekt C++ dla CMake.
    2. Utwórz projekt Firebase
    3. Zarejestruj swoją aplikację (iOS lub Android) w Firebase
    4. Dodaj plik konfiguracyjny Firebase platformy mobilnej
  2. 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ę plik GoogleService-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.

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

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

    2. 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}")
      
  4. 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)
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
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