Vai direttamente alle istruzioni per la migrazione
Perché eseguire la migrazione per utilizzare gli SDK Firebase AI Logic?
Potresti aver provato un insieme alternativo di SDK client web o mobile che ti ha dato accesso a Gemini Developer API.
Questi SDK client non sono stati integrati nel solido ecosistema Firebase che offre servizi essenziali per app web e mobile. Ora sono deprecati a favore degli SDK client Firebase AI Logic, che possono darti accesso a Gemini Developer API.
Funzionalità di sicurezza per app web e per dispositivi mobili
Per le app web e mobile, la sicurezza è fondamentale e richiede considerazioni speciali perché il codice, incluse le chiamate a Gemini API, viene eseguito in un ambiente non protetto. Puoi utilizzare Firebase App Check per proteggere le API dall'abuso da parte di client non autorizzati.
Quando utilizzi Firebase App Check con Firebase AI Logic, non aggiungi mai la chiave API Gemini per Gemini Developer API direttamente nel codebase della tua app mobile o web. Al contrario, la chiave API Gemini rimane sul server, senza essere esposta a utenti malintenzionati.
Ecosistema creato per app web e mobile
Firebase è la piattaforma di Google per lo sviluppo di app web e mobile. L'utilizzo di Firebase AI Logic significa che le tue app si trovano in un ecosistema incentrato sulle esigenze di app e sviluppatori full-stack. Ad esempio:
Imposta dinamicamente le configurazioni di runtime o scambia i valori nella tua app (ad esempio il nome e la versione di un modello) senza rilasciare una nuova versione dell'app utilizzando Firebase Remote Config.
Utilizza Cloud Storage for Firebase per includere file di grandi dimensioni nelle richieste multimodali (se utilizzi Vertex AI Gemini API). Gli SDK client Cloud Storage ti aiutano a gestire i caricamenti e i download di file (anche in condizioni di rete scarse) e offrono maggiore sicurezza per i dati degli utenti finali. Scopri di più nella nostra guida alla soluzione sull'utilizzo di Cloud Storage for Firebase.
Gestisci i dati strutturati utilizzando gli SDK per database creati per app web e mobile (come Cloud Firestore).
Migrazione agli SDK Firebase AI Logic
Panoramica dei passaggi per eseguire la migrazione agli SDK Firebase AI Logic:
Passaggio 1: configura un progetto Firebase nuovo o esistente e connetti la tua app a Firebase.
Passaggio 2: aggiungi gli SDK Firebase AI Logic alla tua app.
Passaggio 3: aggiorna le importazioni e l'inizializzazione nella tua app.
Passaggio 4: aggiorna il codice in base alle funzionalità che utilizzi.
Passaggio 1: configura un progetto Firebase e connetti la tua app
Accedi alla console Firebase, quindi seleziona il tuo progetto Firebase.
Nella console Firebase, vai alla pagina Firebase AI Logic.
Fai clic su Inizia per avviare un flusso di lavoro guidato che ti aiuti a configurare le API richieste e le risorse per il tuo progetto.
Seleziona Gemini Developer API. Puoi sempre configurare e utilizzare l'altro provider di API in un secondo momento, se vuoi.
La console abiliterà le API richieste e creerà una nuova chiave API Gemini dedicata nel tuo progetto.
Non aggiungere questa nuova chiave API Gemini nel codebase della tua app. Scopri di più.Se richiesto nel flusso di lavoro della console, segui le istruzioni sullo schermo per registrare la tua app e connetterla a Firebase.
Continua a seguire questa guida alla migrazione per aggiornare la libreria e l'inizializzazione nella tua app.
Passaggio 2: aggiungi l'SDK Firebase AI Logic alla tua app
Dopo aver configurato il progetto Firebase e connesso l'app a Firebase (vedi il passaggio precedente), ora puoi aggiungere l'SDK Firebase AI Logic alla tua app.
Swift
Utilizza Swift Package Manager per installare e gestire le dipendenze di Firebase.
La libreria Firebase AI Logic fornisce l'accesso alle API per interagire
con i modelli Gemini e Imagen. La libreria è inclusa
nell'SDK Firebase per le piattaforme Apple (firebase-ios-sdk
).
Se utilizzi già Firebase, assicurati che il pacchetto Firebase sia la versione 11.13.0 o successive.
In Xcode, con il progetto dell'app aperto, vai a File > Add Package Dependencies (File > Aggiungi dipendenze pacchetto).
Quando richiesto, aggiungi il repository dell'SDK delle piattaforme Apple di Firebase:
https://github.com/firebase/firebase-ios-sdk
Seleziona l'ultima versione dell'SDK.
Seleziona la libreria
FirebaseAI
.
Al termine, Xcode inizierà automaticamente a risolvere e a scaricare le tue dipendenze in background.
Kotlin
L'SDK Firebase AI Logic per Android (firebase-ai
) fornisce
l'accesso alle API per interagire con
i modelli Gemini e Imagen.
Nel file Gradle (a livello di app) del modulo
(ad esempio <project>/<app-module>/build.gradle.kts
),
aggiungi la dipendenza per la libreria Firebase AI Logic per Android.
Ti consigliamo di utilizzare
Firebase Android BoM
per controllare il controllo delle versioni della libreria.
dependencies { // ... other androidx dependencies // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.15.0")) // Add the dependency for the Firebase AI Logic library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-ai") }
Utilizzando la Firebase Android BoM, la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.
Java
L'SDK Firebase AI Logic per Android (firebase-ai
) fornisce
l'accesso alle API per interagire con
i modelli Gemini e Imagen.
Nel file Gradle (a livello di app) del modulo
(ad esempio <project>/<app-module>/build.gradle.kts
),
aggiungi la dipendenza per la libreria Firebase AI Logic per Android.
Ti consigliamo di utilizzare
Firebase Android BoM
per controllare il controllo delle versioni della libreria.
Per Java, devi aggiungere due librerie aggiuntive.
dependencies { // ... other androidx dependencies // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.15.0")) // Add the dependency for the Firebase AI Logic library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-ai") // Required for one-shot operations (to use `ListenableFuture` from Guava Android) implementation("com.google.guava:guava:31.0.1-android") // Required for streaming operations (to use `Publisher` from Reactive Streams) implementation("org.reactivestreams:reactive-streams:1.0.4") }
Utilizzando la Firebase Android BoM, la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.
Web
La libreria Firebase AI Logic fornisce l'accesso alle API per interagire con i modelli Gemini e Imagen. La libreria è inclusa nell'SDK Firebase JavaScript per il web.
Installa l'SDK Firebase JS per il web utilizzando npm:
npm install firebase
Inizializza Firebase nella tua app:
import { initializeApp } from "firebase/app"; // TODO(developer) Replace the following with your app's Firebase configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize FirebaseApp const firebaseApp = initializeApp(firebaseConfig);
Dart
Il plug-in Firebase AI Logic per Flutter (firebase_ai
) fornisce
l'accesso alle API per interagire con
i modelli Gemini e Imagen.
Dalla directory del progetto Flutter, esegui questo comando per installare il plug-in principale e il plug-in Firebase AI Logic:
flutter pub add firebase_core && flutter pub add firebase_ai
Nel file
lib/main.dart
, importa il plug-in Firebase Core, il plug-in Firebase AI Logic e il file di configurazione che hai generato in precedenza:import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_ai/firebase_ai.dart'; import 'firebase_options.dart';
Inoltre, nel file
lib/main.dart
, inizializza Firebase utilizzando l'oggettoDefaultFirebaseOptions
esportato dal file di configurazione:await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, );
Ricrea l'applicazione Flutter:
flutter run
Unity
Il supporto per Unity non era disponibile negli SDK client Google AI.
Scopri come iniziare a utilizzare l'SDK Firebase AI Logic per Unity.
Rimuovere il vecchio SDK dall'app
Dopo aver completato la migrazione dell'app (vedi le sezioni rimanenti di questa guida), assicurati di eliminare la vecchia libreria.
Swift
Rimuovi la vecchia raccolta:
In Xcode, con il progetto dell'app aperto, vai al riquadro Packages Dependencies (Dipendenze pacchetti).
Seleziona il pacchetto
generative-ai-swift
dall'elenco delle dipendenze dei pacchetti.Fai clic sul pulsante
-
nella parte inferiore dell'elenco e fai clic su Rimuovi per confermare.
Kotlin
dependencies {
implementation("com.google.ai.client.generativeai:generativeai:VERSION")
}
Java
dependencies {
implementation("com.google.ai.client.generativeai:generativeai:VERSION")
}
Web
// BEFORE
import { initializeApp } from "firebase/app";
import { GoogleGenerativeAI } from "@google/generative-ai";
Dart
Elimina il vecchio pacchetto:
flutter pub remove google_generative_ai
Unity
Il supporto per Unity non era disponibile negli SDK client Google AI.
Scopri come iniziare a utilizzare l'SDK Firebase AI Logic per Unity.
Passaggio 3: aggiorna le importazioni e l'inizializzazione nell'app
Aggiorna le importazioni e la modalità di inizializzazione del servizio di backend Gemini Developer API e crea un'istanza GenerativeModel
.
Swift
// BEFOREimport GoogleGenerativeAI let model = GenerativeModel(name: "MODEL_NAME", apiKey: APIKey.default)// AFTER import FirebaseAI // Initialize the Gemini Developer API backend service let ai = FirebaseAI.firebaseAI(backend: .googleAI()) // Create a `GenerativeModel` instance with a model that supports your use case let model = ai.generativeModel(modelName: "gemini-2.5-flash")
Kotlin
// BEFOREimport com.google.ai.client.generativeai.Chat import com.google.ai.client.generativeai.type.Content import com.google.ai.client.generativeai.java.GenerativeModuleFutures...val generativeModel = GenerativeModel(modelName = "MODEL_NAME", // Access your API key as a Build Configuration variable apiKey = BuildConfig.apiKey )// AFTER import com.google.firebase.Firebase import com.google.firebase.ai.ai import com.google.firebase.ai.type.GenerativeBackend ... // Initialize the Gemini Developer API backend service // Create a `GenerativeModel` instance with a model that supports your use case val model = Firebase.ai(backend = GenerativeBackend.googleAI()) .generativeModel("gemini-2.5-flash")
Java
// BEFOREimport com.google.ai.client.generativeai.Chat; import com.google.ai.client.generativeai.type.Content; import com.google.ai.client.generativeai.java.GenerativeModuleFutures;...GenerativeModel gm = new GenerativeModel("MODEL_NAME", // Access your API key as a Build Configuration variable BuildConfig.apiKey ); GenerativeModelFutures model = GenerativeModelFutures.from(gm);// AFTER import com.google.firebase.ai.FirebaseAI; import com.google.firebase.ai.GenerativeModel; import com.google.firebase.ai.java.GenerativeModelFutures; import com.google.firebase.ai.type.GenerativeBackend; ... // Initialize the Gemini Developer API backend service // Create a `GenerativeModel` instance with a model that supports your use case GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI()) .generativeModel("gemini-2.5-flash"); // Use the GenerativeModelFutures Java compatibility layer which offers // support for ListenableFuture and Publisher APIs GenerativeModelFutures model = GenerativeModelFutures.from(ai);
Web
// BEFOREimport { GoogleGenerativeAI } from "@google/generative-ai"; // Fetch your API_KEY and access your API const API_KEY = "..."; const genAI = new GoogleGenerativeAI(API_KEY);...const model = genAI.getGenerativeModel({ model: "MODEL_NAME"});// AFTER import { initializeApp } from "firebase/app"; import { getAI, getGenerativeModel, GoogleAIBackend } from "firebase/ai"; // TODO(developer) Replace the following with your app's Firebase configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize FirebaseApp const firebaseApp = initializeApp(firebaseConfig); // Initialize the Gemini Developer API backend service const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() }); // Create a `GenerativeModel` instance with a model that supports your use case const model = getGenerativeModel(ai, { model: "gemini-2.5-flash" });
Dart
// BEFOREimport 'package:google_generative_ai/google_generative_ai.dart'; final apiKey = Platform.environment['API_KEY']; if (apiKey == null) { print('No \$API_KEY environment variable'); exit(1); } final model = GenerativeModel(model: 'MODEL_NAME', apiKey: apiKey);// AFTER import 'package:firebase_ai/firebase_ai.dart'; import 'package:firebase_core/firebase_core.dart'; import 'firebase_options.dart'; // Initialize FirebaseApp await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); // Initialize the Gemini Developer API backend service // Create a `GenerativeModel` instance with a model that supports your use case final model = FirebaseAI.googleAI().generativeModel(model: 'gemini-2.5-flash');
Unity
Il supporto per Unity non era disponibile negli SDK client Google AI.
Scopri come iniziare a utilizzare l'SDK Firebase AI Logic per Unity.
Tieni presente che, a seconda della funzionalità che utilizzi, potresti non creare sempre
un'istanza GenerativeModel
.
- Per accedere a un modello Imagen,
crea un'istanza
ImagenModel
.
Passaggio 4: aggiorna il codice in base alle funzionalità che utilizzi
Questo passaggio descrive le modifiche che potrebbero essere necessarie a seconda delle funzionalità che utilizzi.
Gli SDK client Firebase AI Logic non supportano l'esecuzione del codice. Se utilizzi questa funzionalità, assicurati di adattarla alla tua app.
Esamina i seguenti elenchi per individuare eventuali modifiche che potresti dover apportare al tuo codice per eseguire la migrazione agli SDK client Firebase AI Logic.
Obbligatorio per tutte le lingue e le piattaforme
Chiamata di funzioni
Se hai implementato questa funzionalità, dovrai apportare aggiornamenti al modo in cui definisci lo schema. Ti consigliamo di consultare la guida alla chiamata di funzioni aggiornata per scoprire come scrivere le dichiarazioni di funzioni.Generazione di output strutturato (come JSON) utilizzando
responseSchema
Se hai implementato questa funzionalità, dovrai apportare aggiornamenti al modo in cui definisci lo schema. Ti consigliamo di consultare la nuova guida all'output strutturato per scoprire come scrivere schemi JSON.Timeout
- È stato modificato il timeout predefinito per le richieste a 180 secondi.
Obbligatorio in base alla piattaforma o alla lingua
Swift
Enumerazioni
La maggior parte dei tipi
enum
sono stati sostituiti construct
con variabili statiche. Questa modifica consente una maggiore flessibilità per l'evoluzione dell'API in modo compatibile con le versioni precedenti. Quando utilizzi le istruzioniswitch
, ora devi includere un casodefault:
per coprire valori sconosciuti o non gestiti, inclusi i nuovi valori che verranno aggiunti all'SDK in futuro.L'enumerazione
BlockThreshold
è stata rinominata inHarmBlockThreshold
; questo tipo ora è unstruct
.Rimozione dei casi
unknown
eunspecified
dalle seguenti enumerazioni (orastruct
):HarmCategory
,HarmBlockThreshold
,HarmProbability
,BlockReason
eFinishReason
.Ha sostituito l'enumerazione
ModelContent.Part
con un protocollo denominatoPart
per consentire l'aggiunta di nuovi tipi in modo compatibile con le versioni precedenti. Questa modifica è descritta in modo più dettagliato nella sezione Parti dei contenuti.
Parti dei contenuti
È stato rimosso il protocollo
ThrowingPartsRepresentable
e sono stati semplificati gli inizializzatori perModelContent
per evitare errori occasionali del compilatore. Le immagini che non vengono codificate correttamente genereranno comunque errori quando vengono utilizzate ingenerateContent
.Sostituiti i casi
ModelContent.Part
con i seguenti tipistruct
conformi al protocolloPart
:- Da
.text
aTextPart
- Da
.data
aInlineDataPart
- Da
.fileData
aFileDataPart
- Da
.functionCall
aFunctionCallPart
- Da
.functionResponse
aFunctionResponsePart
- Da
Categoria di danno
- È stato modificato il tipo
HarmCategory
in modo che non sia più nidificato nel tipoSafetySetting
. Se lo chiamiSafetySetting.HarmCategory
, puoi sostituirlo conHarmCategory
.
- È stato modificato il tipo
Feedback sulla sicurezza
- È stato rimosso il tipo
SafetyFeedback
, poiché non è stato utilizzato in nessuna delle risposte.
- È stato rimosso il tipo
Metadati delle citazioni
- È stata rinominata la proprietà
citationSources
incitations
inCitationMetadata
.
- È stata rinominata la proprietà
Totale caratteri fatturabili
- È stata modificata la proprietà
totalBillableCharacters
inCountTokensResponse
per renderla facoltativa e riflettere le situazioni in cui non vengono inviati caratteri.
- È stata modificata la proprietà
Risposta del candidato
- Il nome
CandidateResponse
è stato modificato inCandidate
in modo che corrisponda a quello di altre piattaforme.
- Il nome
Configurazione della generazione
- Modificate le proprietà pubbliche di
GenerationConfig
ininternal
. Sono tutti configurabili nell'inizializzatore.
- Modificate le proprietà pubbliche di
Kotlin
Enumerazioni
Le classi
enum
esealed
sono state sostituite da classi regolari. Questa modifica consente una maggiore flessibilità per l'evoluzione dell'API in modo compatibile con le versioni precedenti.L'enumerazione
BlockThreshold
è stata rinominata inHarmBlockThreshold
.Valori rimossi dalle seguenti enumerazioni:
HarmBlockThreshold
,HarmProbability
,HarmSeverity
,BlockReason
eFinishReason
.
Metodi blob
- Tutti i metodi che includevano
Blob
nel nome sono stati rinominati in modo che utilizzasseroInlineData
.
- Tutti i metodi che includevano
Impostazioni di sicurezza
- Il campo
method
è stato modificato in modo da accettare valori nulli.
- Il campo
Classe Duration
- Sono stati rimossi tutti gli utilizzi della classe
Duration
di Kotlin, che è stata sostituita conlong
. Questa modifica offre una migliore interoperabilità con Java.
- Sono stati rimossi tutti gli utilizzi della classe
Metadati delle citazioni
- Ha incluso tutti i campi dichiarati in precedenza in
CitationMetadata
in una nuova classe chiamataCitation
. Le citazioni sono disponibili nell'elencocitations
inCitationMetadata
. Questa modifica consente un migliore allineamento dei tipi tra le piattaforme.
- Ha incluso tutti i campi dichiarati in precedenza in
Token di conteggio
- Il campo
totalBillableCharacters
è stato modificato in modo da accettare valori nulli.
- Il campo
Totale caratteri fatturabili
- È stata modificata la proprietà
totalBillableCharacters
inCountTokensResponse
per renderla facoltativa e riflettere le situazioni in cui non vengono inviati caratteri.
- È stata modificata la proprietà
Creazione di un'istanza di un modello
- Il parametro
requestOptions
è stato spostato alla fine dell'elenco dei parametri per allinearsi ad altre piattaforme.
- Il parametro
Java
Enumerazioni
Le classi
enum
esealed
sono state sostituite da classi regolari. Questa modifica consente una maggiore flessibilità per l'evoluzione dell'API in modo compatibile con le versioni precedenti.L'enumerazione
BlockThreshold
è stata rinominata inHarmBlockThreshold
.Valori rimossi dalle seguenti enumerazioni:
HarmBlockThreshold
,HarmProbability
,HarmSeverity
,BlockReason
eFinishReason
.
Metodi blob
- Tutti i metodi che includevano
Blob
nel nome sono stati rinominati in modo che utilizzasseroInlineData
.
- Tutti i metodi che includevano
Impostazioni di sicurezza
- Il campo
method
è stato modificato in modo da accettare valori nulli.
- Il campo
Classe Duration
- Sono stati rimossi tutti gli utilizzi della classe
Duration
di Kotlin, che è stata sostituita conlong
. Questa modifica offre una migliore interoperabilità con Java.
- Sono stati rimossi tutti gli utilizzi della classe
Metadati delle citazioni
- Ha incluso tutti i campi dichiarati in precedenza in
CitationMetadata
in una nuova classe chiamataCitation
. Le citazioni sono disponibili nell'elencocitations
inCitationMetadata
. Questa modifica consente un migliore allineamento dei tipi tra le piattaforme.
- Ha incluso tutti i campi dichiarati in precedenza in
Token di conteggio
- Il campo
totalBillableCharacters
è stato modificato in modo da accettare valori nulli.
- Il campo
Totale caratteri fatturabili
- È stata modificata la proprietà
totalBillableCharacters
inCountTokensResponse
per renderla facoltativa e riflettere le situazioni in cui non vengono inviati caratteri.
- È stata modificata la proprietà
Creazione di un'istanza di un modello
- Il parametro
requestOptions
è stato spostato alla fine dell'elenco dei parametri per allinearsi ad altre piattaforme.
- Il parametro
Web
Tieni presente che l'SDK client Google AI per JavaScript ha subito molte modifiche da quando sono stati creati gli SDK client Firebase AI Logic. L'elenco seguente riporta alcune potenziali modifiche che potresti dover prendere in considerazione durante la migrazione agli SDK client Firebase AI Logic.
Enumerazioni
- Valori rimossi dalle seguenti enumerazioni:
HarmCategory
,BlockThreshold
,HarmProbability
,HarmSeverity
,BlockReason
eFinishReason
.
- Valori rimossi dalle seguenti enumerazioni:
Motivo del blocco
- Il campo
blockReason
inPromptFeedback
è ora facoltativo.
- Il campo
Grounding della ricerca
- Sono stati rimossi tutti gli utilizzi di questa funzionalità, poiché non è ancora supportata negli SDK Firebase AI Logic.
Errori
- Sono stati rimossi tutti gli utilizzi di
GoogleGenerativeAIError
e, facoltativamente, è stato eseguito il passaggio aAIError
.
- Sono stati rimossi tutti gli utilizzi di
Dart
Enumerazioni
- Sono stati rimossi valori dalle seguenti enumerazioni:
HarmCategory
,HarmProbability
,BlockReason
eFinishReason
.
- Sono stati rimossi valori dalle seguenti enumerazioni:
Parte dei dati
DataPart
è stato rinominato inInlineDataPart
e la funzionestatic
data
ininlineData
per allinearsi ad altre piattaforme.
Opzioni di richiesta
RequestOptions
è stato rimosso perchétimeout
non era funzionante. Verrà aggiunto di nuovo nel prossimo futuro, ma verrà spostato nel tipoGenerativeModel
per corrispondere ad altre piattaforme.
Sequenze di interruzioni
- Il parametro
stopSequences
inGenerationConfig
è stato modificato in modo che sia facoltativo e che il valore predefinito sianull
anziché un array vuoto.
- Il parametro
Citazioni
- È stata rinominata la proprietà
citationSources
incitations
inCitationMetadata
. Il tipoCitationSource
è stato rinominato inCitation
per corrispondere ad altre piattaforme.
- È stata rinominata la proprietà
Tipi, metodi e proprietà pubblici non necessari
- Sono stati rimossi i seguenti tipi, metodi e proprietà che erano
stati esposti involontariamente:
defaultTimeout
,CountTokensResponseFields
,parseCountTokensResponse
,parseEmbedContentResponse
,parseGenerateContentResponse
,parseContent
,BatchEmbedContentsResponse
,ContentEmbedding
,EmbedContentRequest
, eEmbedContentResponse
.
- Sono stati rimossi i seguenti tipi, metodi e proprietà che erano
stati esposti involontariamente:
Token di conteggio
- Sono stati rimossi i campi aggiuntivi dalla funzione
countTokens
che non sono più necessari. È necessario solocontents
.
- Sono stati rimossi i campi aggiuntivi dalla funzione
Creazione di un'istanza di un modello
- Il parametro
systemInstruction
è stato spostato alla fine dell'elenco dei parametri per allinearsi ad altre piattaforme.
- Il parametro
Funzionalità di incorporamento
- Rimossa la funzionalità di incorporamento non supportata (
embedContent
ebatchEmbedContents
) dal modello.
- Rimossa la funzionalità di incorporamento non supportata (
Unity
Il supporto per Unity non era disponibile negli SDK client Google AI.
Scopri come iniziare a utilizzare l'SDK Firebase AI Logic per Unity.
Fornisci un feedback sulla tua esperienza con Firebase AI Logic