Dodaj Firebase do projektu C++

Zwiększ skuteczność swoich gier w C++ dzięki naszym pakietom SDK Firebase C++, które zapewniają pakiet SDK w języku C++ z interfejsem SDK Firebase.

Dostęp do Firebase w pełni z poziomu kodu C++, bez konieczności pisania przez kod natywny. Pakiet SDK Firebase tłumaczy także wiele idiomy używane przez Firebase w interfejsie lepiej znanym programistom C++.

Więcej informacji o zwiększaniu skuteczności gier dzięki Firebase znajdziesz w naszym Strona gier w Firebase

Masz już dodaną Firebase do swojego projektu w C++? Upewnij się, że używasz tagu najnowszej wersji pakietu SDK Firebase C++.

.


Wymagania wstępne

  • Zainstaluj preferowany edytor lub IDE, takie jak Android Studio, IntelliJ lub VS Code.

  • Pobierz pakiet SDK na Androida.

  • Sprawdź, czy Twój projekt spełnia te wymagania:

  • Skonfiguruj urządzenie fizyczne lub użyj emulatora, aby uruchomić aplikację.

    • Emulatory musi używać obrazu emulatora w Google Play.

    • W przypadku niektórych bibliotek C++ na kliencie są wymagane usługi Google Play urządzenie; zapoznaj się z lista na tej stronie.

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

Krok 2. Utwórz projekt Firebase

Zanim dodasz Firebase do swojego projektu w C++, musisz utworzyć projekt, który chcesz połączyć z projektem w C++. Odwiedź Więcej informacji o projektach Firebase Projekty Firebase.

Krok 3. Zarejestruj aplikację w Firebase

Aby używać Firebase w swojej aplikacji na Androida, musisz ją zarejestrować w projekt Firebase. Rejestracja aplikacji często nazywa się „dodawaniem” aplikacji na w projektach AI.

  1. Otwórz konsolę Firebase.

  2. Na środku strony przeglądu projektu kliknij ikonę Androida. () lub Dodaj aplikację, aby rozpocząć proces konfiguracji.

  3. Wpisz nazwę pakietu aplikacji w polu Nazwa pakietu na Androida.

    .
  4. (Opcjonalnie) Wpisz inne informacje o aplikacji: Nazwa aplikacji i Certyfikat podpisywania debugowania SHA-1.

  5. Kliknij Zarejestruj aplikację.

Krok 4. Dodaj plik konfiguracji Firebase

  1. Kliknij Pobierz google-services.json, aby uzyskać Firebase na Androida. .

  2. Otwórz swój projekt C++ w IDE, a następnie dodaj do niego plik konfiguracyjny:

  3. (Tylko kompilacje Gradle) Aby włączyć usługi Firebase w projekcie C++, dodaj google-services wtyczka do pliku build.gradle najwyższego poziomu.

    1. Dodaj reguły, aby uwzględnić wtyczkę Gradle usług Google. Sprawdź, czy ma też repozytorium Google Maven.

        buildscript {
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
          }
      
          dependencies {
            // ...
      
            // Add the following lines:
            classpath 'com.google.gms:google-services:4.4.2'  // Google Services plugin
            implementation 'com.google.android.gms:18.5.0'
          }
        }
      
        allprojects {
          // ...
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
            // ...
          }
        }
      
    2. Zastosuj wtyczkę Gradle usług Google:

        apply plugin: 'com.android.application'
        // Add the following line:
        apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
        android {
          // ...
        }
      
  4. Masz już za sobą konfigurowanie w konsoli Firebase. Przejdź do: Dodaj pakiety SDK Firebase w C++ poniżej.

Krok 5. Dodaj pakiety SDK Firebase w C++

Instrukcje w tej sekcji pokazują, jak dodać obsługiwaną usługę Firebase produkty projektu Firebase w C++.

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

    Pakiet SDK Firebase C++ nie jest związany z konkretną platformą, ale zawiera biblioteki typowe dla platformy.

  2. W pliku gradle.properties projektu określ lokalizację rozpakowany pakiet SDK:

    systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
    
  3. Do pliku settings.gradle projektu dodaj tę treść:

    def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir')
    
    gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir"
    includeBuild "$firebase_cpp_sdk_dir"
    
  4. Do pliku Gradle modułu (na poziomie aplikacji) (zwykle app/build.gradle) dodaj parametr następujące treści.
    Dołącz zależności bibliotek dla usług Firebase, których chcesz użyć w swojej aplikacji.

    Włączono: Analytics

    android.defaultConfig.externalNativeBuild.cmake {
    arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    # Add the dependencies for the Firebase products you want to use in your app
    # For example, to use Analytics, Firebase Authentication, and Firebase Realtime Database
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      analytics
      auth
      database
    }
    

    Funkcja Analytics nie została włączona

    android.defaultConfig.externalNativeBuild.cmake {
    arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    # Add the dependencies for the Firebase products you want to use in your app
    # For example, to use Firebase Authentication and Firebase Realtime Database
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      auth
      database
    }
    
  5. Do pliku CMakeLists.txt projektu dodaj poniższą treść.
    Dołącz biblioteki dla usług Firebase, których chcesz używać w swojej aplikacji.

    Włączono: Analytics

    # 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 Analytics, Firebase Authentication, and Firebase Realtime Database
    set(firebase_libs
      firebase_analytics
      firebase_auth
      firebase_database
      firebase_app
    )
    target_link_libraries(${target_name} "${firebase_libs}")
    

    Funkcja Analytics nie została włączona

    # 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}")
    
  6. Zsynchronizuj aplikację, aby mieć pewność, że wszystkie zależności mają niezbędne wersje.

  7. Jeśli dodano Analytics, uruchom aplikację, aby wysłać weryfikację do Firebase udało Ci się zintegrować Firebase. W przeciwnym razie możesz pominąć weryfikacji.

    W dziennikach urządzenia będzie widoczna weryfikacja Firebase zainicjowana zakończono. Jeśli aplikacja została uruchomiona na emulatorze 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 Firebase usług Google.

Dostępne biblioteki

Więcej informacji o bibliotekach Firebase w C++ znajdziesz w dokumentacji referencyjnej oraz pakietu SDK typu open source. znajdziesz na GitHubie.

Biblioteki dostępne na Androida (przy użyciu CMake)

Biblioteki C++ dla platform Apple są wymienione na platformach Apple (iOS+) tej strony konfiguracji.

Usługa Firebase Odwołania do bibliotek
(firebaseCpp.dependencies
plik build.gradle)
Odwołania do bibliotek
(firebase_libs
plik CMakeLists.txt)
AdMob admob firebase_admob
(wymagane) firebase_analytics
(wymagane) firebase_app
Analytics analytics firebase_analytics
(wymagane) firebase_app
App Check appCheck firebase_app_check
(wymagane) firebase_app
Authentication auth firebase_auth
(wymagane) firebase_app
Cloud Firestore firestore firebase_firestore
(wymagane) firebase_auth
(wymagane) firebase_app
Cloud Functions functions firebase_functions
(wymagane) firebase_app
Cloud Messaging messaging firebase_messaging
(zalecane) firebase_analytics
(wymagane) firebase_app
Cloud Storage storage firebase_storage
(wymagane) firebase_app
Dynamic Links dynamicLinks firebase_dynamic_links
(zalecane) firebase_analytics
(wymagane) firebase_app
Realtime Database database firebase_database
(wymagane) firebase_app
Remote Config remoteConfig firebase_remote_config
(zalecane) firebase_analytics
(wymagane) firebase_app

Dodatkowe informacje na temat konfiguracji telefonu komórkowego

Otrzymuj raporty o awariach NDK

Firebase Crashlytics obsługuje zgłaszanie awarii w aplikacjach na Androida bibliotek natywnych. Więcej informacji: Otrzymuj raporty o awariach Androida NDK.

Niestandardowe systemy kompilacji

Firebase udostępnia skrypt generate_xml_from_google_services_json.py, aby przekonwertuj google-services.json na .xml zasoby, które możesz uwzględnić w Twoim projekcie. Ten skrypt stosuje to samo przekształcenie, które wprowadziła Google Play usług wtyczki Gradle podczas tworzenia aplikacji na Androida.

Jeśli nie tworzysz kompilacji przy użyciu Gradle (na przykład używasz ndk-build, createfiles, Visual Studio itp.), możesz użyć tego skryptu, aby zautomatyzować generowanie Ciąg znaków dotyczący Androida Zasoby.

ProGuard

W wielu systemach kompilacji Androida ProGuard na potrzeby kompilacji Tryb wydania, aby zmniejszyć rozmiar aplikacji i chronić kod źródłowy Java.

Jeśli używasz ProGuard, musisz dodać pliki w usłudze libs/android/*.pro odpowiadające bibliotekom Firebase C++, których używasz w ProGuard konfiguracji.

Na przykład w przypadku Gradle, jeśli używasz interfejsu Google Analytics, Twój plik build.gradle będzie wyglądał tak:

android {
  // ...
  buildTypes {
    release {
      minifyEnabled true
      proguardFile getDefaultProguardFile('your-project-proguard-config.txt')
      proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/app.pro")
      proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/analytics.pro")
      // ...  and so on, for each Firebase C++ library that you're using
    }
  }
}

Wymagania dotyczące Usług Google Play

Większość bibliotek Firebase w C++ wymaga Usługi Google Play na urządzeniu z Androidem klienta. Jeśli biblioteka Firebase C++ zwraca kInitResultFailedMissingDependency przy zainicjowaniu oznacza, że Usługi Google Play nie są dostępne na urządzenie klienckie (co oznacza, że wymaga aktualizacji, ponownego aktywowania, uprawnień) naprawione itp.). Biblioteki Firebase nie można używać do czasu na urządzeniu klienckim.

Możesz dowiedzieć się, dlaczego Usługi Google Play są niedostępne na urządzeniu klienckim (i spróbuj go naprawić), używając funkcji google_play_services/availability.h

W tej tabeli podano, czy klient musi korzystać z Usług Google Play dla każdej obsługiwanej usługi Firebase.

Biblioteka Firebase C++ Na urządzeniu klienckim są wymagane usługi Google Play?
AdMob Niewymagane (zazwyczaj)
Analytics Niewymagane
Authentication Wymagane
Cloud Firestore Wymagane
Cloud Functions Wymagane
Cloud Messaging Wymagane
Cloud Storage Wymagane
Dynamic Links Wymagane
Realtime Database Wymagane
Remote Config Wymagane

AdMob i Usługi Google Play

Większość wersji pakietu SDK Google Mobile Ads na Androida działa prawidłowo bez Usług Google Play na urządzeniu klienckim. Jeśli jednak używasz parametru zależność com.google.android.gms:play-services-ads-lite, a nie standardowej zależności com.google.firebase:firebase-ads wymienionej powyżej, Usługi Google Play są wymagane.

Zainicjowanie funkcji AdMob zwróci tylko wartość kInitResultFailedMissingDependency gdy są spełnione oba te warunki:

  • Usługi Google Play są niedostępne na urządzeniu klienckim.
  • Używasz com.google.android.gms:play-services-ads-lite.

Konfigurowanie przepływu pracy na komputerze (beta)

Gdy tworzysz grę, często łatwiej jest przetestować ją na komputerze platform, a później wdrażać i testować na urządzeniach mobilnych. Do pomagają w tym procesie, zapewniamy podzbiór pakietów SDK Firebase 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 – po uruchomieniu aplikacji, Firebase zlokalizuje ten plik mobilny, a potem automatycznie generuje plik konfiguracyjny Firebase na komputery; (google-services-desktop.json).

    • Jeśli dodano plik GoogleService-Info.plist iOS – przed uruchomieniem Twojej aplikacji, musisz przekonwertować ten plik mobilny na komputer Firebase. . Aby przekonwertować plik, uruchom następujące polecenie w tym samym jako plik GoogleService-Info.plist:

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

    Ten plik konfiguracyjny komputera zawiera identyfikator projektu C++ wpisany w polu procesu konfiguracji konsoli Firebase. Odwiedź Informacje o projektach Firebase aby dowiedzieć się więcej o plikach konfiguracyjnych.

  3. Dodaj pakiety SDK Firebase do projektu C++.

    Poniższe kroki to przykład tego, jak dodać dowolny obsługiwanej usługi Firebase do w swoim projekcie C++. W tym przykładzie omówię dodawanie Firebase Authentication i Firebase Realtime Database.

    1. Ustaw zmienną środowiskową FIREBASE_CPP_SDK_DIR na lokalizację rozpakowany pakiet SDK Firebase C++.

    2. Do pliku CMakeLists.txt projektu dodaj tę treść: w tym biblioteki dla Wybierz usługi Firebase, których chcesz używać. Na przykład, aby użyć Firebase Authentication i Firebase Realtime Database:

      # 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 SDK Firebase C++ obejmuje obsługę przepływu pracy na komputerze dla podzbioru funkcji, dzięki czemu pewne części Firebase mogą być wykorzystywane na komputery z systemami Windows, macOS i Linux.

Usługa Firebase Odwołania do bibliotek (przy użyciu CMake)
App Check firebase_app_check
(wymagane) firebase_app
Authentication firebase_auth
(wymagane) firebase_app
Cloud Firestore firebase_firestore
firebase_auth
firebase_app
Cloud Functions firebase_functions
(wymagane) firebase_app
Cloud Storage firebase_storage
(wymagane) firebase_app
Realtime Database firebase_database
(wymagane) firebase_app
Remote Config firebase_remote_config
(wymagane) firebase_app

Firebase udostępnia pozostałe biblioteki komputerowe w postaci wersji atmosferycznej (niedziałającej) dla wygody użytkowników systemów Windows, macOS i Linux. Dzięki temu nie musisz warunkowo kompilować kodu kierowanego na komputer.

Realtime Database – komputer

Pakiet SDK Realtime Database na komputery uzyskuje dostęp do Twojej bazy danych za pomocą REST, dlatego zadeklarować indeksy, które używanych w połączeniu z usługą Query::OrderByChild() na komputerze.

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.

Tworząc aplikacje komputerowe w języku C++ w systemie Windows, połącz ten pakiet SDK biblioteki. Więcej informacji znajdziesz w dokumentacji kompilatora i informacjami o nich.

Biblioteka Firebase C++ Zależności bibliotek Windows SDK
App Check advapi32, ws2_32, crypt32
Authentication 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
Realtime Database advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Remote Config advapi32, ws2_32, crypt32, rpcrt4, ole32

Biblioteki systemu macOS

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

Pamiętaj, że biblioteki macOS zostały przetestowane za pomocą 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 32-bitowej (i386) i 64-bitowej (x86_64) platform.

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

Podczas tworzenia aplikacji komputerowych w C++ na Linuksie połącz bibliotekę systemową pthread z w Twoim projekcie. Więcej informacji znajdziesz w dokumentacji kompilatora. Jeśli tworzysz przy użyciu GCC 5 lub nowszego, zdefiniuj -D_GLIBCXX_USE_CXX11_ABI=0.

Dalsze kroki