Dodaj Firebase do swojego projektu C++

Wzmocnij swoje gry w języku C++ dzięki naszym pakietom SDK Firebase C++, które zapewniają interfejs C++ w dodatku do Firebase dla systemów iOS i Android.

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

Więcej informacji na temat zwiększania mocy 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 Firebase C++ SDK .

Warunki wstępne

  • Zainstaluj następujące elementy:

    • Xcode 13.3.1 lub nowszy
    • CocoaPods 1.10.0 lub nowszy
  • Upewnij się, że projekt jest przeznaczony dla następujących wersji platformy lub nowszych:

    • iOS 10
  • Skonfiguruj fizyczne urządzenie z systemem iOS lub użyj symulatora systemu iOS, aby uruchomić aplikację.

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

Krok 2 : utwórz projekt Firebase

Zanim dodasz Firebase do projektu C++, musisz utworzyć projekt Firebase, aby połączyć się z projektem C++. Odwiedź Zrozumienie projektów Firebase , aby dowiedzieć się więcej o projektach Firebase.

Krok 3 : Zarejestruj swoją aplikację w Firebase

Aby używać Firebase w swojej 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 dodałeś już aplikację do projektu Firebase, kliknij Dodaj aplikację , aby wyświetlić opcje platformy.

  3. Wpisz identyfikator pakietu swojej aplikacji w polu identyfikatora pakietu .

  4. (Opcjonalnie) Wpisz 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 platform Apple Firebase.

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

  3. Jeśli pojawi się monit, wybierz, aby dodać plik konfiguracyjny do wszystkich celów.

Skończyłeś konfigurować zadania w konsoli Firebase. Przejdź do sekcji Dodaj pakiety SDK Firebase C++ poniżej.

Krok 5. Dodaj pakiety SDK Firebase C++

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

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

    Pakiet 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 bloki Firebase, których chcesz używać w swojej aplikacji.

      Analytics włączone

      # 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łą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.

    Najłatwiejszym sposobem dodania tych struktur jest zwykle przeciągnięcie ich z okna Finder bezpośrednio do panelu Nawigator projektu Xcode (domyślnie skrajnie 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 strukturę dla każdego produktu Firebase, którego chcesz użyć. Na przykład, aby korzystać z uwierzytelniania Firebase, dodaj firebase_auth.framework .

  4. Wróć do konsoli Firebase, w procesie konfiguracji kliknij Dalej .

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

    W dziennikach urządzenia zostanie wyświetlony komunikat Firebase potwierdzający zakończenie inicjalizacji. Jeśli aplikacja została uruchomiona w emulatorze, który ma dostęp do sieci, konsola Firebase powiadomi Cię, że połączenie aplikacji zostało zakończone.

Wszystko gotowe! Twoja aplikacja C++ jest zarejestrowana i skonfigurowana do korzystania z produktów Firebase.

Dostępne biblioteki

Dowiedz się więcej o bibliotekach Firebase C++ w dokumentacji referencyjnej oraz w naszym wydaniu SDK typu open source w serwisie GitHub .

Dostępne biblioteki na iOS

Należy zauważyć, że biblioteki C++ dla systemu Android są wymienione w wersji tej strony konfiguracji 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 projektu Podfile i C++.

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

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

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

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

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

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

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

pod 'FirebaseStorage', '9.4.0'
Dynamiczne linki (wymagane) firebase.framework
firebase_dynamic_links.framework
(zalecane) firebase_analytics.framework

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

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

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

Dodatkowe informacje dotyczące konfiguracji mobilnej

Metoda swizzling

W systemie iOS niektóre zdarzenia aplikacji (takie jak otwieranie adresów URL i otrzymywanie powiadomień) wymagają, aby delegat aplikacji zaimplementował określone metody. Na przykład odbieranie powiadomienia może wymagać, aby delegat aplikacji zaimplementował 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 programy obsługi oprócz tych, które zostały zaimplementowane.

Biblioteki Dynamic Links i Cloud Messaging muszą dołączyć programy 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 przestawi na nią wymagane metody, łącząc wywołanie z powrotem z istniejącą implementacją metody.

Skonfiguruj przepływ pracy na komputerze ( beta )

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

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

    1. Skonfiguruj projekt C++ dla CMake.
    2. Utwórz projekt Firebase
    3. Zarejestruj swoją aplikację (iOS lub Android) w Firebase
    4. Dodaj plik konfiguracyjny Firebase dla platformy mobilnej
  2. Utwórz komputerową wersję pliku konfiguracyjnego Firebase:

    • Jeśli dodałeś plik google-services.json systemu Android — po uruchomieniu aplikacji Firebase zlokalizuje ten plik mobilny , a następnie automatycznie wygeneruje plik konfiguracyjny Firebase dla komputerów stacjonarnych ( google-services-desktop.json ).

    • Jeśli dodałeś plik GoogleService-Info.plist dla systemu iOS – przed uruchomieniem aplikacji musisz przekonwertować ten plik mobilny na plik konfiguracyjny Firebase na komputery . Aby przekonwertować plik, uruchom następujące polecenie z tego samego katalogu, co plik GoogleService-Info.plist :

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

    Ten plik konfiguracyjny na komputery stacjonarne zawiera identyfikator projektu C++ wprowadzony w przepływie pracy konfiguracji konsoli Firebase. Odwiedź stronę Understand Firebase Projects , aby dowiedzieć się więcej o plikach konfiguracyjnych.

  3. Dodaj pakiety SDK Firebase do swojego projektu w języku C++.

    Poniższe kroki stanowią przykład tego, jak dodać dowolny obsługiwany produkt Firebase do projektu C++. W tym przykładzie omówimy dodawanie 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 Firebase C++ SDK obejmuje obsługę przepływów pracy na pulpicie dla podzbioru funkcji, dzięki czemu niektóre części Firebase mogą być używane w samodzielnych kompilacjach pulpitu w systemach Windows, macOS i Linux.

Produkt Firebase Odniesienia do bibliotek (za pomocą 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 udostępnia pozostałe biblioteki komputerowe jako implementacje skrótowe (niefunkcjonalne) dla wygody podczas kompilowania dla systemów Windows, macOS i Linux. Dlatego nie musisz warunkowo kompilować kodu, aby kierować go na pulpit.

Pulpit bazy danych czasu rzeczywistego

Zestaw SDK bazy danych czasu rzeczywistego dla komputerów stacjonarnych używa REST w celu uzyskania dostępu do bazy danych, więc musisz zadeklarować indeksy , których używasz z Query::OrderByChild() na komputerze stacjonarnym, w przeciwnym razie odbiorniki ulegną awarii.

Dodatkowe informacje dotyczące konfiguracji pulpitu

Biblioteki Windows

W przypadku systemu Windows dostępne są wersje bibliotek w oparciu o następujące elementy:

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

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

Podczas tworzenia aplikacji klasycznych C++ w systemie Windows połącz z projektem następujące biblioteki Windows SDK. Więcej informacji znajdziesz w dokumentacji kompilatora.

Biblioteka Firebase C++ Zależności biblioteki 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). Ramy są również dostępne dla Twojej wygody.

Zwróć uwagę, że biblioteki macOS zostały przetestowane przy użyciu Xcode 13.3.1.

Tworząc aplikacje klasyczne w języku C++ w systemie macOS, połącz następujące elementy z projektem:

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

Więcej informacji znajdziesz w dokumentacji kompilatora.

Biblioteki linuksowe

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

Zauważ, że biblioteki Linux były testowane przy użyciu GCC 4.8.0, GCC 7.2.0 i Clang 5.0 na Ubuntu.

Podczas tworzenia aplikacji klasycznych C++ w systemie Linux połącz bibliotekę systemową pthread z projektem. Więcej informacji znajdziesz w dokumentacji kompilatora. Jeśli tworzysz z GCC 5 lub nowszym, zdefiniuj -D_GLIBCXX_USE_CXX11_ABI=0 .

Następne kroki