Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Dodaj Firebase do swojego projektu C++

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Wzmocnij swoje gry C++ dzięki naszym pakietom SDK Firebase C++, które zapewniają interfejs C++ w dodatku do Firebase na iOS i Androida.

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 iOS lub użyj symulatora 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.

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

      Analiza 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'

      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ę, że udało Ci się zintegrować 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 C++ Firebase w dokumentacji referencyjnej oraz w naszym wydaniu SDK typu open source w witrynie GitHub .

Dostępne biblioteki na iOS

Pamiętaj, że biblioteki C++ dla systemu Android są wymienione na tej stronie 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.6.0'
(wymagane) pod 'FirebaseAnalytics', '9.6.0'
Analityka (wymagane) firebase.framework
firebase_analytics.framework

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

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

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

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

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

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

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

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

pod 'FirebaseRemoteConfig', '9.6.0'
(zalecane) pod 'FirebaseAnalytics', '9.6.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 za pomocą 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 znacznie ł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 dla komputerów . 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ź Zrozumienie projektów Firebase , aby dowiedzieć się więcej o plikach konfiguracyjnych.

  3. Dodaj pakiety SDK Firebase do 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ę w języku 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 dla komputerów stacjonarnych 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 udostępniane 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 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). 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