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

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

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

    Pakiet SDK Firebase w C++ nie jest związany z konkretną platformą, ale zawiera bibliotekach używanych na poszczególnych platformach.

  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.

    Analityka 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 Analytics, Firebase Authentication, and Firebase Realtime Database
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      analytics
      auth
      database
    }
    

    Statystyki nie są włączone

    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.

    Analityka 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 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}")
    

    Statystyki nie są włączone

    # 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 masz dodaną usługę 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
Sprawdzanie aplikacji appCheck firebase_app_check
(wymagane) firebase_app
Uwierzytelnianie auth firebase_auth
(wymagane) firebase_app
Cloud Firestore firestore firebase_firestore
(wymagane) firebase_auth
(wymagane) firebase_app
Funkcje Cloud functions firebase_functions
(wymagane) firebase_app
Komunikacja w chmurze messaging firebase_messaging
(zalecane) firebase_analytics
(wymagane) firebase_app
Cloud Storage storage firebase_storage
(wymagane) firebase_app
Linki dynamiczne dynamicLinks firebase_dynamic_links
(zalecane) firebase_analytics
(wymagane) firebase_app
Baza danych czasu rzeczywistego database firebase_database
(wymagane) firebase_app
Zdalna konfiguracja 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 raporty o awariach aplikacji korzystających z 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ć do swojego projektu. 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 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
Uwierzytelnianie Wymagane
Cloud Firestore Wymagane
Cloud Functions Wymagane
Komunikacja w chmurze Wymagane
Cloud Storage Wymagane
Linki dynamiczne Wymagane
Baza danych czasu rzeczywistego Wymagane
Zdalna konfiguracja Wymagane

AdMob i Usługi Google Play

Większość wersji pakietu SDK do reklam mobilnych Google 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.

Inicjowanie AdMob zwraca 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 w C++, który może 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 Uwierzytelnianie Firebase i Baza danych czasu rzeczywistego Firebase.

    1. Ustaw zmienną środowiskową FIREBASE_CPP_SDK_DIR na lokalizację rozpakowany pakiet SDK Firebase w 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ć Uwierzytelnianie Firebase i Baza 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 (na komputerze)

Pakiet SDK Firebase C++ obejmuje obsługę przepływu pracy na komputerach 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)
Sprawdzanie aplikacji firebase_app_check
(wymagane) firebase_app
Uwierzytelnianie firebase_auth
(wymagane) firebase_app
Cloud Firestore firebase_firestore
firebase_auth
firebase_app
Funkcje Cloud firebase_functions
(wymagane) firebase_app
Cloud Storage 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 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.

Baza danych czasu rzeczywistego (Realtime Database) na komputerze

Pakiet SDK bazy danych czasu rzeczywistego na komputery uzyskuje dostęp do Twojej bazy danych za pomocą REST, dlatego zadeklaruj indeksy, które z którego korzystasz 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
Sprawdzanie aplikacji advapi32, ws2_32, crypt32
Uwierzytelnianie 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
Baza danych czasu rzeczywistego advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Zdalna konfiguracja 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 do swojego projektu. 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