Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Aggiungi Firebase al tuo progetto Unity

Potenzia i tuoi giochi Unity con i nostri SDK Firebase Unity.

Per mostrare quanto sia facile collegare Firebase al tuo progetto Unity, abbiamo realizzato un gioco di esempio, MechaHamster, che puoi scaricare da GitHub , App Store e Google Play Store .

MechaHamster (GitHub)

MechaHamster (App Store)

MechaHamster (Play Store)


Scopri ulteriori informazioni su come potenziare i tuoi giochi con Firebase nella nostra pagina dei giochi Firebase .

Hai già aggiunto Firebase al tuo progetto Unity? Assicurati di utilizzare l'ultima versione di Firebase Unity SDK .

Prerequisiti

  • Installa Unity 2017.4 o versioni successive. Anche le versioni precedenti potrebbero essere compatibili ma non saranno supportate attivamente.

  • (Solo iOS) Installa quanto segue:

    • Xcode 9.4.1 o successivo
    • CocoaPods 1.10.0 o versioni successive
  • Assicurati che il tuo progetto Unity soddisfi questi requisiti:

    • Per iOS : è destinato a iOS 10 o versioni successive
    • Per Android : ha come target il livello API 16 (Jelly Bean) o successivo
  • Configura un dispositivo fisico o usa un emulatore per eseguire la tua app.

    • Per iOS : configura un dispositivo iOS fisico o utilizza il simulatore iOS.

    • Per Android : gli emulatori devono utilizzare un'immagine dell'emulatore con Google Play.

Se non hai già un progetto Unity e vuoi solo provare un prodotto Firebase, puoi scaricare uno dei nostri esempi di avvio rapido .

Passaggio 1 : crea un progetto Firebase

Prima di poter aggiungere Firebase al tuo progetto Unity, devi creare un progetto Firebase per connetterti al tuo progetto Unity. Visita Comprendere i progetti Firebase per ulteriori informazioni sui progetti Firebase.

Passaggio 2 : registra la tua app con Firebase

Puoi registrare una o più app o giochi per connetterti al tuo progetto Firebase.

  1. Vai alla console Firebase .

  2. Al centro della pagina di panoramica del progetto, fare clic sull'icona Unity ( ) per avviare il flusso di lavoro di configurazione.

    Se hai già aggiunto un'app al tuo progetto Firebase, fai clic su Aggiungi app per visualizzare le opzioni della piattaforma.

  3. Seleziona quale build target del tuo progetto Unity desideri registrare, oppure puoi anche scegliere di registrare entrambe le destinazioni ora contemporaneamente.

  4. Immettere gli ID specifici della piattaforma del progetto Unity.

    • Per iOS : inserisci l'ID iOS del tuo progetto Unity nel campo ID bundle iOS .

    • Per Android : inserisci l'ID Android del tuo progetto Unity nel campo del nome del pacchetto Android .
      I termini nome del pacchetto e ID applicazione sono spesso usati in modo intercambiabile.

  5. (Facoltativo) Inserisci i nickname specifici della piattaforma del tuo progetto Unity.
    Questi soprannomi sono identificatori interni e utili e sono visibili solo a te nella console Firebase.

  6. Fare clic su Registra app .

Passaggio 3 : aggiungi i file di configurazione di Firebase

  1. Ottieni i file di configurazione Firebase specifici della piattaforma nel flusso di lavoro di configurazione della console Firebase.

    • Per iOS : fai clic su Scarica GoogleService-Info.plist .

    • Per Android : fai clic su Scarica google-services.json .

  2. Apri la finestra Progetto del tuo progetto Unity, quindi sposta i file di configurazione nella cartella Assets .

  3. Nella console Firebase, nel flusso di lavoro di configurazione, fai clic su Avanti .

Passaggio 4 : aggiungi gli SDK Firebase Unity

  1. Nella console Firebase, fai clic su Scarica Firebase Unity SDK , quindi decomprimi l'SDK in un punto conveniente.

    • Puoi scaricare nuovamente l' SDK di Firebase Unity in qualsiasi momento.

    • Firebase Unity SDK non è specifico della piattaforma.

  2. Nel progetto Unity aperto, vai su Assets > Importa pacchetto > Pacchetto personalizzato .

  3. Dall'SDK decompresso, seleziona i prodotti Firebase supportati che desideri utilizzare nella tua app.

    Analytics abilitato

    • Aggiungi il pacchetto Firebase per Google Analytics: FirebaseAnalytics.unitypackage
    • Aggiungi i pacchetti per qualsiasi altro prodotto Firebase che desideri utilizzare nella tua app. Ad esempio, per utilizzare Firebase Authentication e Firebase Realtime Database:
      FirebaseAuth.unitypackage e FirebaseDatabase.unitypackage

    Analytics non abilitato

    Aggiungi i pacchetti per i prodotti Firebase che desideri utilizzare nella tua app. Ad esempio, per utilizzare Firebase Authentication e Firebase Realtime Database:
    FirebaseAuth.unitypackage e FirebaseDatabase.unitypackage

  4. Nella finestra Importa pacchetto Unity , fare clic su Importa .

  5. Nella console Firebase, nel flusso di lavoro di configurazione, fai clic su Avanti .

Passaggio 5 : conferma i requisiti della versione dei servizi di Google Play

L'SDK Firebase Unity per Android richiede i servizi di Google Play , che devono essere aggiornati prima di poter utilizzare l'SDK.

Aggiungi il seguente codice all'inizio della tua applicazione. Puoi verificare e, facoltativamente, aggiornare i servizi di Google Play alla versione richiesta da Firebase Unity SDK prima di chiamare qualsiasi altro metodo nell'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.
  }
});

È tutto pronto! Il tuo progetto Unity è registrato e configurato per utilizzare Firebase.

Problemi conosciuti

Compatibilità .NET quando si utilizza Unity 2017.x e versioni successive

Firebase supporta .NET 4.x come opzione di build sperimentale in Unity 2017 e versioni successive. I plug-in Firebase utilizzano componenti di Parse SDK per fornire alcune classi .NET 4.x nelle versioni precedenti di .NET.

Pertanto, Firebase Unity SDK versione 5.4.0 e successive fornisce plug-in compatibili con .NET 3.x o .NET 4.x nelle dotnet3 e dotnet4 di Firebase Unity SDK.

Se importi un plug-in Firebase che non è compatibile con la versione .NET abilitata nel tuo progetto, vedrai errori di compilazione da alcuni tipi nel framework .NET implementati da Parse SDK.

Per risolvere l'errore di compilazione, se utilizzi .NET 3.x:

  1. Rimuovere o disabilitare le seguenti DLL per tutte le piattaforme:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. Abilita le seguenti DLL per tutte le piattaforme:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

Per risolvere l'errore di compilazione, se utilizzi .NET 4.x:

  1. Rimuovere o disabilitare le seguenti DLL per tutte le piattaforme:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. Abilita le seguenti DLL per tutte le piattaforme:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

Se importi un altro plug-in Firebase:

  • Nel tuo progetto Unity, vai su Assets > Play Services Resolver > Version Handler > Update per abilitare le DLL corrette per il tuo progetto.

Compilazione di Unity 2017.1 IL2CPP nei progetti .NET 4.x.

Firebase supporta .NET 4.x come opzione di build sperimentale in Unity 2017 e versioni successive. I plug-in Firebase utilizzano componenti di Parse SDK per fornire alcune classi .NET 4.x nelle versioni precedenti di .NET.

Pertanto, Firebase Unity SDK versione 5.4.0 e successive fornisce DLL di inoltro dei tipi che inoltrano i tipi Parse (ad esempio, l'implementazione Parse di System.Threading.Tasks.Task ) al framework .NET. Sfortunatamente, IL2CPP (un transpiler che converte C # in C ++) fornito in Unity 2017.1.x non elabora correttamente le DLL di inoltro del tipo che si traduce in errori di compilazione simili ai seguenti:

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

Al momento non sono disponibili soluzioni alternative per gli errori di compilazione IL2CPP di .NET 4.x in Unity 2017.1, quindi è necessario eseguire l'aggiornamento a Unity 2017.2 o versioni successive per utilizzare .NET 4.x nei progetti compilati con IL2CPP.

Rete di Unity 2017.2

Firebase Realtime Database crea connessioni di rete TLS utilizzando lo stack di rete .NET. La funzionalità TLS è interrotta in Unity 2017.2 quando si utilizza .NET 4.6, causando il malfunzionamento del plug-in Realtime Database negli editor e sul desktop.

Non esiste una soluzione alternativa per questo problema, quindi è necessario utilizzare una versione diversa di Unity, ad esempio la versione 2017.1 o 2017.3.

File di configurazione Android Firebase mancante in Unity 2020.

Per supportare le versioni di Unity che non hanno la possibilità di personalizzare la build Gradle, lo strumento dell'editor Firebase genera Assets/Plugins/Android/Firebase/res/values/google-services.xml come risorsa Android da impacchettare in un Build Android, in modo che l'SDK Firebase possa utilizzarlo per inizializzare l'istanza FirebaseApp predefinita.

In Unity 2020, tutte le risorse Android devono trovarsi in directory con un suffisso .androidlib . Se il tuo progetto utilizza un SDK Firebase che genera una directory Assets/Plugins/Android/Firebase , rinominalo in Assets/Plugins/Android/Firebase.androidlib . Assicurati che contenga AndroidManifest.xml , project.properties e res/values/google-services.xml .

Un problema con il singolo dex durante la creazione dell'app Android

Durante la creazione di un'app Android, potresti riscontrare un errore di compilazione correlato alla presenza di un singolo file dex. Il messaggio di errore è simile al seguente, se il progetto è configurato per utilizzare il sistema di compilazione Gradle.

Cannot fit requested classes in a single dex file.

I .dex eseguibili Dalvik ( .dex ) vengono utilizzati per contenere una serie di definizioni di classi e i dati aggiunti associati per le applicazioni Android ( .apk ). Un singolo file dex è limitato al riferimento a 65.536 metodi. La compilazione avrà esito negativo se il numero totale di metodi di tutte le librerie Android nel progetto supera questo limite.

Unity ha introdotto Minification nel 2017.2, che utilizza Proguard (o altri strumenti in alcune versioni di Unity) per eliminare il codice inutilizzato, che può ridurre il numero totale di metodi di riferimento in un singolo file dex. L'opzione può essere trovata in Impostazioni lettore> Android> Impostazioni di pubblicazione> Minimizza . Le opzioni possono variare a seconda della versione di Unity, quindi fare riferimento alla documentazione ufficiale di Unity.

Se il numero di metodi di riferimento supera ancora il limite, un'altra opzione è abilitare il multidex . Esistono diversi modi per ottenere questo risultato in Unity:

  • Se il Custom Gradle Template in Player Settings è abilitato, modifica mainTemplate.gradle .
  • Se utilizzi Android Studio per creare il progetto esportato, modifica il file build.gradle livello di build.gradle .

Maggiori dettagli possono essere trovati nella guida utente multidex .

Configurare un flusso di lavoro desktop ( beta )

Quando crei un gioco, è spesso molto più semplice testarlo prima nell'editor Unity e sulle piattaforme desktop, quindi distribuirlo e testarlo sui dispositivi mobili in un secondo momento durante lo sviluppo. Per supportare questo flusso di lavoro, forniamo un sottoinsieme degli SDK Firebase Unity che possono essere eseguiti su Windows, macOS, Linux e dall'editor Unity.

  1. Configura un progetto Unity per piattaforma desktop seguendo le stesse istruzioni di una piattaforma mobile (inizia con il passaggio Registra la tua app con Firebase sopra).

  2. Esegui il tuo progetto Unity nell'IDE Unity o seleziona per creare il tuo progetto Unity per desktop .

  3. (Facoltativo) Esegui il tuo progetto Unity in modalità di modifica.

    Firebase Unity SDK può essere eseguito anche nella modalità di modifica di Unity, consentendone l'uso nei plug-in dell'editor.

    1. Quando crei FirebaseApp utilizzata dall'editor, non utilizzare l'istanza predefinita.

    2. Fornisci invece un nome univoco alla chiamata FirebaseApp.Create() .

      Questo è importante per evitare un conflitto nelle opzioni tra l'istanza utilizzata da Unity IDE e l'istanza utilizzata dal progetto Unity.

Prodotti Firebase supportati

Ulteriori informazioni sulle librerie Unity Firebase nella documentazione di riferimento .

L'SDK Firebase Unity supporta i seguenti prodotti Firebase su iOS e Android :

Prodotto Firebase Pacchetto Unity
AdMob Distribuito separatamente nel plug-in Unity di AdMob
Analytics FirebaseAnalytics.unitypackage
Autenticazione FirebaseAuth.unitypackage
Cloud Firestore (beta) FirebaseFirestore.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Messaggistica cloud FirebaseMessaging.unitypackage
(consigliato) FirebaseAnalytics.unitypackage
Archiviazione nel cloud FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
(consigliato) FirebaseAnalytics.unitypackage
Collegamenti dinamici FirebaseDynamicLinks.unitypackage
(consigliato) FirebaseAnalytics.unitypackage
Database in tempo reale FirebaseDatabase.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage
(consigliato) FirebaseAnalytics.unitypackage

Prodotti Firebase supportati (desktop)

Firebase Unity SDK include il supporto del flusso di lavoro desktop per un sottoinsieme di prodotti, consentendo l'utilizzo di alcune parti di Firebase nell'editor Unity e nelle build desktop autonome su Windows, macOS e Linux.

Prodotto Firebase (desktop) Pacchetto Unity
Autenticazione FirebaseAuth.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Cloud Firestore FirebaseFirestore.unitypackage
Archiviazione nel cloud FirebaseStorage.unitypackage
Database in tempo reale FirebaseDatabase.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage

Firebase fornisce le restanti librerie desktop come implementazioni stub (non funzionali) per comodità durante la creazione per Windows, macOS e Linux. Pertanto, non è necessario compilare in modo condizionale il codice per indirizzare il desktop.

Prossimi passi