Dodaj Firebase do swojego projektu C++

Wzmocnij swoje gry C++ za pomocą naszych zestawów SDK Firebase C++, które zapewniają interfejs C++ oprócz zestawów SDK Firebase.

Uzyskaj dostęp do Firebase całkowicie ze swojego kodu C++, bez konieczności pisania kodu natywnego dla platformy. Zestaw SDK Firebase tłumaczy także wiele idiomów specyficznych dla języka używanych przez Firebase na interfejs bardziej znany programistom C++.

Więcej informacji o zasilaniu gier za pomocą Firebase znajdziesz na naszej stronie gier Firebase .

Dodałeś już Firebase do swojego projektu C++? Upewnij się, że używasz najnowszej wersji pakietu SDK Firebase C++ .

Warunki wstępne

  • Zainstaluj następujące elementy:

    • Xcode 13.3.1 lub nowszy
    • CocoaPods 1.12.0 lub nowsza wersja
  • Upewnij się, że Twój projekt jest skierowany na następujące wersje platform lub nowsze:

    • iOS 11
    • tvOS 12
  • Skonfiguruj urządzenie fizyczne lub użyj symulatora, aby uruchomić 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ę Poznaj 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ć 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 dodałeś już aplikację do projektu Firebase, kliknij Dodaj aplikację , aby wyświetlić opcje platformy.

  3. Wpisz identyfikator pakietu aplikacji w polu identyfikatora pakietu .

  4. (Opcjonalnie) Wprowadź inne informacje o aplikacji: pseudonim aplikacji i identyfikator App Store .

  5. Kliknij opcję Zarejestruj aplikację .

Krok 4 : Dodaj plik konfiguracyjny Firebase

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

  2. Otwórz projekt C++ w 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 obiektów docelowych.

Skończyłeś konfigurowanie zadań w konsoli Firebase. Kontynuuj dodawanie pakietów SDK Firebase C++ poniżej.

Krok 5 : Dodaj zestawy SDK Firebase C++

Kroki opisane w tej sekcji stanowią przykład dodawania obsługiwanych produktów Firebase do projektu Firebase C++.

  1. Pobierz pakiet SDK Firebase C++ , a następnie rozpakuj zestaw SDK w dogodnym miejscu.

    Zestaw SDK Firebase C++ nie jest specyficzny dla platformy, ale zawiera biblioteki specyficzne dla platformy.

  2. Dodaj pody Firebase z rozpakowanego zestawu SDK.

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

      cd your-app-directory
      pod init

    2. Do swojego 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 frameworki 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 framework Firebase C++ firebase.framework , który jest wymagany do korzystania z dowolnego produktu Firebase.

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

  4. W konsoli Firebase, w procesie konfiguracji, kliknij Dalej .

  5. Jeśli dodałeś Analytics, uruchom aplikację, aby wysłać do Firebase weryfikację, że pomyślnie zintegrowałeś Firebase. W przeciwnym razie możesz pominąć ten krok weryfikacji.

    W dziennikach urządzenia zostanie wyświetlona weryfikacja Firebase potwierdzająca zakończenie inicjalizacji. Jeśli uruchomiłeś aplikację na emulatorze mającym dostęp do sieci, konsola Firebase powiadomi 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 serwisie GitHub .

Dostępne biblioteki dla platform Apple

Należy pamiętać, że biblioteki C++ dla systemu Android są wymienione w wersji dla systemu Android na tej stronie konfiguracji .

Każdy produkt Firebase ma inne zależności. Pamiętaj, aby dodać wszystkie wymienione zależności dla żądanego produktu Firebase do projektu Podfile i C++.

Każdy produkt Firebase może obsługiwać tylko wybrane platformy Apple OS (iOS, tvOS itp.). Sprawdź, które platformy są obsługiwane przez poszczególne biblioteki, w Dowiedz się więcej o C++ i Firebase .

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

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

pod 'FirebaseAnalytics', '10.22.0'
Kontrola aplikacji (wymagane) firebase.framework
firebase_app_check.framework

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

pod 'FirebaseAuth', '10.22.0'
Chmura Firestore (wymagane) firebase.framework
firebase_firestore.framework
firebase_auth.framework

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

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

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

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

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

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

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

Dodatkowe informacje dotyczące konfiguracji mobilnej

Metoda swizzowania

W systemie iOS niektóre zdarzenia aplikacji (takie jak otwieranie adresów URL i otrzymywanie powiadomień) wymagają od delegata aplikacji zaimplementowania określonych metod. Na przykład otrzymanie powiadomienia może wymagać od delegata aplikacji zaimplementowania application:didReceiveRemoteNotification: . Ponieważ każda aplikacja na iOS ma własnego delegata aplikacji, Firebase używa metody swizzling , która umożliwia zastąpienie jednej metody inną, aby dołączyć własne procedury obsługi oprócz tych, które mogłeś zaimplementować.

Biblioteki Dynamic Links i Cloud Messaging muszą dołączyć procedury obsługi do delegata aplikacji przy użyciu metody swizzling. Jeśli używasz któregokolwiek z tych produktów Firebase, w czasie ładowania Firebase zidentyfikuje Twoją klasę AppDelegate i zamieni na nią wymagane metody, łącząc wywołanie z powrotem z istniejącą implementacją metody.

Skonfiguruj przepływ pracy na komputerze stacjonarnym ( beta )

Kiedy tworzysz grę, często znacznie łatwiej jest najpierw przetestować ją na platformach stacjonarnych, a następnie wdrożyć i przetestować na urządzeniach mobilnych w późniejszym etapie jej tworzenia. Aby wesprzeć ten przepływ pracy, udostępniamy podzbiór zestawów SDK Firebase C++ , które można uruchomić w systemach Windows, macOS, Linux oraz w edytorze C++.

  1. W przypadku przepływów pracy na komputerze stacjonarnym 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 wersję komputerową pliku konfiguracyjnego Firebase:

    • Jeśli dodano plik google-services.json na Androida — po uruchomieniu aplikacji Firebase lokalizuje ten plik mobilny , a następnie automatycznie generuje plik konfiguracyjny Firebase na komputer stacjonarny ( 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 komputery stacjonarne . 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++ wprowadzony w przepływie pracy konfiguracji konsoli Firebase. Odwiedź stronę Poznaj 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 dodania dowolnego obsługiwanego produktu Firebase do projektu C++. W tym przykładzie omówimy dodanie uwierzytelniania Firebase i bazy danych Firebase Realtime.

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

    2. Do pliku CMakeLists.txt swojego projektu dodaj następującą zawartość, w tym biblioteki produktów Firebase, których chcesz używać. Na przykład, aby użyć uwierzytelniania Firebase i bazy danych Firebase Realtime:

      # 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ływu pracy na komputerze stacjonarnym 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 Biblioteki referencyjne (przy użyciu CMake)
Kontrola aplikacji firebase_app_check
(wymagane) firebase_app
Uwierzytelnianie firebase_auth
(wymagane) firebase_app
Chmura 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 udostępnia 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 przeznaczonego na komputer stacjonarny.

Pulpit bazy danych czasu rzeczywistego

Zestaw SDK bazy danych czasu rzeczywistego dla komputerów stacjonarnych korzysta z protokołu REST w celu uzyskania dostępu do bazy danych, dlatego musisz zadeklarować indeksy , których używasz z Query::OrderByChild() na komputerze stacjonarnym, w przeciwnym razie detektory zawiodą.

Dodatkowe informacje dotyczące konfiguracji komputera stacjonarnego

Biblioteki Windowsa

W przypadku systemu Windows dostępne są wersje bibliotek oparte na następujących zasadach:

  • Platforma kompilacji: tryb 32-bitowy (x86) vs 64-bitowy (x64).
  • Środowisko wykonawcze Windows: wielowątkowe/MT vs wielowątkowe DLL/MD
  • Cel: wydanie vs debugowanie

Należy pamiętać, że następujące biblioteki zostały przetestowane przy użyciu programu Visual Studio 2015 i 2017.

Tworząc aplikacje klasyczne w języku C++ w systemie Windows, połącz z projektem następujące biblioteki Windows SDK. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją kompilatora.

Biblioteka Firebase C++ Zależności bibliotek Windows SDK
Kontrola aplikacji advapi32, ws2_32, crypt32
Uwierzytelnianie advapi32, ws2_32, crypt32
Chmura 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-u

W przypadku systemu macOS (Darwin) dostępne są wersje bibliotek dla platformy 64-bitowej (x86_64). Dla Twojej wygody dostępne są również struktury.

Należy pamiętać, że biblioteki macOS zostały przetestowane przy użyciu Xcode 13.3.1.

Tworząc aplikacje komputerowe w języku C++ na macOS, połącz następujące elementy ze swoim projektem:

  • biblioteka systemowa pthread
  • Struktura systemu macOS CoreFoundation
  • Foundation struktura systemu macOS
  • Struktura systemu Security macOS
  • Struktura systemu GSS macOS
  • Struktura systemu Kerberos macOS
  • Konfiguracja SystemConfiguration Struktura systemu macOS

Aby uzyskać więcej informacji, zapoznaj się z dokumentacją kompilatora.

Biblioteki Linuksa

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

Należy pamiętać, że biblioteki systemu Linux zostały przetestowane przy użyciu GCC 4.8.0, GCC 7.2.0 i Clang 5.0 na Ubuntu.

Tworząc aplikacje klasyczne w języku C++ w systemie Linux, połącz bibliotekę systemową pthread ze swoim projektem. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją kompilatora. Jeśli budujesz przy użyciu GCC 5 lub nowszego, zdefiniuj -D_GLIBCXX_USE_CXX11_ABI=0 .

Następne kroki