Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Dodaj Firebase do swojego projektu Unity

Zwiększ możliwości swoich gier Unity dzięki naszym pakietom Firebase Unity SDK.

Aby pokazać, jak łatwo jest podłączyć Firebase do projektu Unity, stworzyliśmy przykładową grę MechaHamster, którą można pobrać z GitHub , App Store i Google Play Store .

MechaHamster (GitHub)

MechaHamster (sklep z aplikacjami)

MechaHamster (Sklep Play)


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

Masz już Firebase do swojego projektu Unity? Upewnij się, że używasz najnowszej wersji pakietu Firebase Unity SDK .

Wymagania wstępne

  • Zainstaluj Unity 2017.4 lub nowszy. Wcześniejsze wersje również mogą być kompatybilne, ale nie będą aktywnie obsługiwane.

  • (tylko iOS) Zainstaluj następujące elementy:

    • Xcode 9.4.1 lub nowszy
    • CocoaPods 1.10.0 lub nowsza
  • Upewnij się, że projekt Unity spełnia następujące wymagania:

    • W przypadku systemu iOS - jest przeznaczony dla systemu iOS 10 lub nowszego
    • W przypadku systemu Android - jest przeznaczony dla interfejsu API na poziomie 16 (Jelly Bean) lub nowszym
  • Skonfiguruj urządzenie fizyczne lub użyj emulatora, aby uruchomić aplikację.

    • W przypadku systemu iOS - skonfiguruj fizyczne urządzenie iOS lub użyj symulatora iOS.

    • W przypadku systemu Android - emulatory muszą używać obrazu emulatora w Google Play.

Jeśli nie masz jeszcze projektu Unity i chcesz po prostu wypróbować produkt Firebase, możesz pobrać jeden z naszych przykładów szybkiego startu .

Krok 1 : utwórz projekt Firebase

Zanim dodasz Firebase do swojego projektu Unity, musisz utworzyć projekt Firebase, aby połączyć się z projektem Unity. Odwiedź artykuł Omówienie projektów Firebase, aby dowiedzieć się więcej o projektach Firebase.

Krok 2 : zarejestruj swoją aplikację w Firebase

Możesz zarejestrować jedną lub więcej aplikacji lub gier, aby połączyć się z projektem Firebase.

  1. Przejdź do konsoli Firebase .

  2. Na środku strony przeglądu projektu kliknij ikonę Unity ( ), aby uruchomić przepływ pracy konfiguracji.

    Jeśli dodałeś już aplikację do projektu Firebase, kliknij Dodaj aplikację, aby wyświetlić opcje platformy.

  3. Wybierz cel kompilacji swojego projektu Unity, który chcesz zarejestrować, lub możesz nawet wybrać, aby zarejestrować oba cele teraz w tym samym czasie.

  4. Wprowadź identyfikatory specyficzne dla platformy projektu Unity.

    • W przypadku systemu iOS - wprowadź identyfikator iOS swojego projektu Unity w polu ID pakietu iOS .

    • W przypadku systemu Android - wprowadź identyfikator Androida swojego projektu Unity w polu nazwy pakietu systemu Android .
      Terminy nazwa pakietu i identyfikator aplikacji są często używane zamiennie.

  5. (Opcjonalnie) Wpisz pseudonimy projektu Unity specyficzne dla platformy.
    Te pseudonimy są wygodnymi identyfikatorami wewnętrznymi i są widoczne tylko dla Ciebie w konsoli Firebase.

  6. Kliknij Zarejestruj aplikację .

Krok 3 : Dodaj pliki konfiguracyjne Firebase

  1. Uzyskaj pliki konfiguracyjne Firebase specyficzne dla platformy w przepływie pracy konfiguracji konsoli Firebase.

    • W przypadku iOS - kliknij Pobierz GoogleService-Info.plist .

    • W przypadku systemu Android - kliknij Pobierz google-services.json .

  2. Otwórz okno projektu swojego projektu Unity, a następnie przenieś pliki konfiguracyjne do folderu Assets .

  3. Wróć do konsoli Firebase, w przepływie pracy konfiguracji kliknij Dalej .

Krok 4 : Dodaj pakiety SDK Firebase Unity

  1. W konsoli Firebase kliknij Pobierz Firebase Unity SDK , a następnie rozpakuj pakiet SDK w dogodnym miejscu.

    • W każdej chwili możesz ponownie pobrać pakiet Firebase Unity SDK .

    • Pakiet Firebase Unity SDK nie jest specyficzny dla platformy.

  2. W otwartym projekcie Unity przejdź do opcji Zasoby > Importuj pakiet > Pakiet niestandardowy .

  3. Z rozpakowanego pakietu SDK wybierz obsługiwane produkty Firebase , których chcesz użyć w swojej aplikacji.

    Analytics włączone

    • Dodaj pakiet Firebase dla Google Analytics: FirebaseAnalytics.unitypackage
    • Dodaj pakiety dla innych produktów Firebase, których chcesz użyć w swojej aplikacji. Na przykład, aby użyć uwierzytelniania Firebase i Bazy danych czasu rzeczywistego Firebase:
      FirebaseAuth.unitypackage i FirebaseDatabase.unitypackage

    Analytics nie jest włączony

    Dodaj pakiety produktów Firebase, których chcesz użyć w swojej aplikacji. Na przykład, aby użyć uwierzytelniania Firebase i Bazy danych czasu rzeczywistego Firebase:
    FirebaseAuth.unitypackage i FirebaseDatabase.unitypackage

  4. W oknie Importuj pakiet Unity kliknij Importuj .

  5. Wróć do konsoli Firebase, w przepływie pracy konfiguracji kliknij Dalej .

Krok 5 : Potwierdź wymagania dotyczące wersji usług Google Play

Pakiet Firebase Unity SDK na Androida wymaga usług Google Play , które muszą być aktualne, aby można było użyć pakietu SDK.

Dodaj następujący kod na początku aplikacji. Możesz sprawdzić dostępność usług Google Play i opcjonalnie zaktualizować je do wersji wymaganej przez pakiet Firebase Unity SDK przed wywołaniem jakichkolwiek innych metod z pakietu SDK.

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Create and hold a reference to your FirebaseApp,
    // where app is a Firebase.FirebaseApp property of your application class.
       app = Firebase.FirebaseApp.DefaultInstance;

    // Set a flag here to indicate whether Firebase is ready to use by your app.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

Wszystko gotowe! Twój projekt Unity jest zarejestrowany i skonfigurowany do korzystania z Firebase.

Znane problemy

Zgodność z .NET podczas korzystania z Unity 2017.x i nowszych

Firebase obsługuje .NET 4.x jako opcję kompilacji eksperymentalnej w Unity 2017 i nowszych. Wtyczki Firebase używają składników Parse SDK, aby zapewnić niektóre klasy .NET 4.x we wcześniejszych wersjach .NET.

Dlatego pakiet Firebase Unity SDK w wersji 5.4.0 i nowszych udostępnia wtyczki zgodne z platformą .NET 3.x lub .NET 4.x w dotnet3 i dotnet4 dotnet3 dotnet4 Unity SDK.

Jeśli zaimportujesz wtyczkę Firebase, która jest niezgodna z wersją .NET włączoną w Twoim projekcie, zobaczysz błędy kompilacji z niektórych typów środowiska .NET, które są implementowane przez Parse SDK.

Aby rozwiązać błąd kompilacji, jeśli używasz .NET 3.x:

  1. Usuń lub wyłącz następujące biblioteki DLL dla wszystkich platform:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. Włącz następujące biblioteki DLL dla wszystkich platform:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

Aby rozwiązać błąd kompilacji, jeśli używasz .NET 4.x:

  1. Usuń lub wyłącz następujące biblioteki DLL dla wszystkich platform:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. Włącz następujące biblioteki DLL dla wszystkich platform:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

Jeśli importujesz inną wtyczkę Firebase:

  • W projekcie Unity przejdź do pozycji Zasoby > Rozpoznawanie usług Play > Obsługa wersji > Aktualizuj, aby włączyć prawidłowe biblioteki DLL dla projektu.

Kompilacja IL2CPP w Unity 2017.1 w projektach .NET 4.x.

Firebase obsługuje .NET 4.x jako opcję kompilacji eksperymentalnej w Unity 2017 i nowszych. Wtyczki Firebase używają składników Parse SDK, aby zapewnić niektóre klasy .NET 4.x we wcześniejszych wersjach .NET.

W związku z tym zestaw Firebase Unity SDK w wersji 5.4.0 i nowszych udostępnia biblioteki DLL przekazujące typy, które przekazują typy analizy (na przykład implementację analizy System.Threading.Tasks.Task ) do platformy .NET. Niestety IL2CPP (transpiler, który konwertuje C # na C ++), który jest dostarczany w Unity 2017.1.x nie obsługuje poprawnie bibliotek DLL przekazywania typu, co powoduje błędy kompilacji podobne do następujących:

Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>

Obecnie nie jest dostępne obejście błędów kompilacji .NET 4.x IL2CPP w Unity 2017.1, więc aby używać .NET 4.x w projektach skompilowanych za pomocą IL2CPP, należy uaktualnić do wersji Unity 2017.2 lub nowszej.

Sieci w Unity 2017.2

Baza danych czasu rzeczywistego Firebase tworzy połączenia sieciowe TLS przy użyciu stosu sieciowego .NET. Funkcjonalność TLS jest uszkodzona w Unity 2017.2 podczas korzystania z .NET 4.6, powodując awarię wtyczki Realtime Database w edytorach i na komputerach stacjonarnych.

Nie ma obejścia tego problemu, więc musisz użyć innej wersji aparatu Unity, na przykład wersji 2017.1 lub 2017.3.

Brak pliku konfiguracyjnego Firebase na Androida w Unity 2020.

W celu obsługi wersji Unity, które nie mają możliwości dostosowywania kompilacji Gradle, narzędzie edytora Firebase generuje Assets/Plugins/Android/Firebase/res/values/google-services.xml jako zasób Androida do spakowania w Android, aby pakiet Firebase SDK mógł go użyć do zainicjowania domyślnej instancji FirebaseApp.

W Unity 2020 wszystkie zasoby Androida muszą znajdować się w katalogach z przyrostkiem .androidlib . Jeśli Twój projekt korzysta z pakietu SDK Firebase, który generuje katalog Assets/Plugins/Android/Firebase , zmień jego nazwę na Assets/Plugins/Android/Firebase.androidlib . Upewnij się, że zawiera AndroidManifest.xml , project.properties i res/values/google-services.xml .

Problem z pojedynczym dexem podczas tworzenia aplikacji na Androida

Podczas tworzenia aplikacji na Androida możesz napotkać błąd kompilacji związany z posiadaniem jednego pliku dex. Komunikat o błędzie wygląda podobnie do poniższego, jeśli projekt jest skonfigurowany do korzystania z systemu kompilacji Gradle.

Cannot fit requested classes in a single dex file.

Pliki wykonywalne Dalvik ( .dex ) są używane do przechowywania zestawu definicji klas i powiązanych z nimi danych pomocniczych dla aplikacji na Androida ( .apk ). Pojedynczy plik dex jest ograniczony do 65 536 metod. Kompilacja zakończy się niepowodzeniem, jeśli łączna liczba metod ze wszystkich bibliotek systemu Android w projekcie przekroczy ten limit.

Firma Unity wprowadziła Minifikację w 2017.2, która wykorzystuje Proguard (lub inne narzędzia w niektórych wersjach Unity) do usuwania nieużywanego kodu, co może zmniejszyć całkowitą liczbę odwoływanych metod w pojedynczym pliku dex. Tę opcję można znaleźć w Ustawieniach odtwarzacza> Android> Ustawienia publikowania> Minify . Opcje mogą się różnić w różnych wersjach Unity, więc zapoznaj się z oficjalną dokumentacją Unity.

Jeśli liczba metod, do których istnieją odwołania, nadal przekracza limit, inną opcją jest włączenie multidex . W Unity można to osiągnąć na wiele sposobów:

  • Jeśli Custom Gradle Template w Player Settings jest włączony, zmodyfikuj mainTemplate.gradle .
  • Jeśli używasz Android Studio do kompilowania wyeksportowanego projektu, zmodyfikuj plik build.gradle poziomie modułu.

Więcej szczegółów można znaleźć w podręczniku użytkownika multidex .

Skonfiguruj przepływ pracy na komputerze ( beta )

Podczas tworzenia gry często znacznie łatwiej jest najpierw przetestować grę w edytorze Unity i na platformach stacjonarnych, a następnie wdrożyć i przetestować na urządzeniach mobilnych w fazie rozwoju. Aby zapewnić obsługę tego przepływu pracy, udostępniamy podzbiór pakietów SDK Firebase Unity, które można uruchamiać w systemach Windows, macOS i Linux oraz w edytorze Unity.

  1. Skonfiguruj projekt Unity na platformę komputerową, postępując zgodnie z tymi samymi instrukcjami, co w przypadku platformy mobilnej (zacznij od kroku Zarejestruj swoją aplikację w Firebase powyżej).

  2. Uruchom projekt Unity w środowisku IDE Unity lub wybierz opcję skompilowania projektu Unity dla komputerów stacjonarnych .

  3. (Opcjonalnie) Uruchom projekt Unity w trybie edycji.

    Pakiet Firebase Unity SDK można również uruchomić w trybie edycji Unity, co pozwala na użycie go we wtyczkach edytora.

    1. Podczas tworzenia aplikacji FirebaseApp używanej przez edytora nie używaj instancji domyślnej.

    2. Zamiast tego podaj unikalną nazwę dla wywołania FirebaseApp.Create() .

      Jest to ważne, aby uniknąć konfliktu opcji między wystąpieniem używanym przez środowisko IDE Unity a wystąpieniem używanym przez projekt Unity.

Obsługiwane produkty Firebase

Dowiedz się więcej o bibliotekach Unity Firebase w dokumentacji referencyjnej .

Pakiet Firebase Unity SDK obsługuje następujące produkty Firebase na iOS i Androida :

Produkt Firebase Pakiet jedności
AdMob Rozpowszechniane osobno we wtyczce AdMob Unity
Analityka FirebaseAnalytics.unitypackage
Poświadczenie FirebaseAuth.unitypackage
Cloud Firestore (beta) FirebaseFirestore.unitypackage
Funkcje chmury FirebaseFunctions.unitypackage
Komunikacja w chmurze FirebaseMessaging.unitypackage
(zalecane) FirebaseAnalytics.unitypackage
Magazyn w chmurze FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
(zalecane) FirebaseAnalytics.unitypackage
Dynamiczne linki FirebaseDynamicLinks.unitypackage
(zalecane) FirebaseAnalytics.unitypackage
Baza danych czasu rzeczywistego FirebaseDatabase.unitypackage
Zdalna konfiguracja FirebaseRemoteConfig.unitypackage
(zalecane) FirebaseAnalytics.unitypackage

Obsługiwane produkty Firebase (komputery stacjonarne)

Pakiet Firebase Unity SDK obejmuje obsługę przepływu pracy na komputerach w podzbiorze produktów, umożliwiając korzystanie z niektórych części Firebase w edytorze Unity i samodzielnych kompilacjach na komputery stacjonarne w systemach Windows, macOS i Linux.

Produkt Firebase (komputer) Pakiet jedności
Poświadczenie FirebaseAuth.unitypackage
Funkcje chmury FirebaseFunctions.unitypackage
Cloud Firestore FirebaseFirestore.unitypackage
Magazyn w chmurze FirebaseStorage.unitypackage
Baza danych czasu rzeczywistego FirebaseDatabase.unitypackage
Zdalna konfiguracja FirebaseRemoteConfig.unitypackage

Firebase udostępnia pozostałe biblioteki pulpitu jako implementacje pośredniczące (niefunkcjonalne) dla wygody podczas tworzenia dla systemów Windows, macOS i Linux. Dlatego nie musisz warunkowo kompilować kodu, aby był przeznaczony na pulpit.

Następne kroki