Bases de Firebase AI Logic
Aperçu
Firebase AI Logic est un produit de Firebase qui permet aux développeurs d'ajouter l'IA générative à leurs applications mobiles et web à l'aide de SDK côté client. L'application peut appeler directement les modèles Gemini via Firebase AI Logic sans que le développeur ait besoin de gérer un backend dédié. Firebase AI Logic était auparavant connu sous le nom de "Vertex AI pour Firebase".
Il supporte les deux fournisseurs d'API Gemini :
- API Gemini Developer : Elle dispose d'un niveau gratuit idéal pour le prototypage, et d'un paiement à l'utilisation pour la production
- API Agent Platform Gemini (anciennement Vertex AI) : Idéale pour passer à l'échelle avec une préparation à la production de niveau entreprise, nécessite le plan tarifaire Blaze
Utilisez l'API Gemini Developer par défaut, et seulement l'API Agent Platform Gemini (anciennement Vertex AI) si l'application l'exige.
Configuration et initialisation
Prérequis
- Identifiez la plateforme sur laquelle l'utilisateur souhaite développer avant de commencer : Android, iOS, Web ou Flutter.
- Si sa plateforme n'est pas prise en charge, dirigez l'utilisateur vers la documentation Firebase pour apprendre à configurer AI Logic pour son application (partagez ce lien avec l'utilisateur https://firebase.google.com/docs/ai-logic/get-started)
- Les commandes Firebase CLI ci-dessous s'exécutent via
npxsur toutes les plateformes, elles nécessitent donc Node.js 20+ et npm. Utilisez la compétencefirebase-basicspour les vérifier et vous connecter à la Firebase CLI. Si Node.js est manquant ou antérieur à la version 20, demandez à l'utilisateur de l'installer comme décrit dans cette compétence. N'installez pas vous-même des paquets système, par exemple avecsudo apt-get, car cela modifie la machine de l'utilisateur sans son consentement.
1. Provisionner Firebase AI Logic (TOUTES les plateformes)
Utilisez la Firebase CLI pour provisionner Firebase AI Logic pour le projet Firebase :
-
Assurez-vous d'être dans un répertoire firebase (avec un
firebase.json). -
Vérifiez que vous exécutez les commandes Firebase CLI contre le projet Firebase prévu. Lorsque vous exécutez cette commande, le projet actif est marqué avec "current" :
npx -y firebase-tools@latest projects:list -
Assurez-vous qu'au moins une application Firebase pour la plateforme cible est enregistrée avec le projet Firebase actuel :
npx -y firebase-tools@latest apps:list -
Provisionnez Firebase AI Logic pour le projet Firebase :
npx -y firebase-tools@latest init ailogicCette commande activera l'API Gemini Developer dans le projet Firebase.
[!WARNING] CRITIQUE : Le provisionnement de Firebase AI Logic est obligatoire Pour toutes les plateformes (Android, iOS, Web ou Flutter), même si l'application utilise déjà Firebase, vous DEVEZ exécuter
npx -y firebase-tools@latest init ailogicpour provisionner le service. Les fichiers de configurationGoogleService-Info.plist,google-services.jsonetfirebase_options.dartne gèrent que la configuration client et n'activent PAS le service Firebase AI Logic, ce qui entraîne des erreursPERMISSION_DENIED.
Si vous ne pouvez pas exécuter init ailogic vous-même (par exemple parce que Node.js est manquant ou que la Firebase CLI n'est pas connectée), ne le sautez PAS. Les requêtes de l'application aux modèles Gemini échoueront jusqu'à ce que le service Firebase AI Logic soit provisionné. Dites à l'utilisateur d'exécuter cette commande dans son répertoire de projet, et incluez-la dans votre résumé final :
npx -y firebase-tools@latest init ailogic
2. Ajouter le SDK et initialiser le service dans l'application
L'ajout de la dépendance SDK et l'initialisation du service sont spécifiques à chaque plateforme. Avant d'écrire du code, lisez la référence pour la plateforme cible listée sous Références de code d'initialisation.
Plus d'informations dans Premiers pas avec Firebase AI Logic
Fonctionnalités de base
[!WARNING] CRITIQUE : Utilisez les noms de modèles actuels : Vérifiez toujours la documentation des modèles Firebase AI Logic pour les noms de modèles actuellement pris en charge. N'utilisez PAS
gemini-2.0-proougemini-2.0-flashou d'autres modèles plus anciens qui ont été arrêtés.
Génération uniquement textuelle
Entrée multimodale (Texte + Images/Audio/Vidéo/PDF)
Firebase AI Logic permet aux modèles Gemini d'analyser des fichiers image directement depuis votre application. Cela permet des fonctionnalités telles que la création de légendes, la réponse à des questions sur des images, la détection d'objets et la catégorisation d'images. Au-delà des images, Gemini peut analyser d'autres types de médias comme l'audio, la vidéo et les PDF en les passant comme données en ligne avec leur type MIME. Pour les fichiers de plus de 20 mégaoctets (qui peuvent provoquer des erreurs HTTP 413 en tant que données en ligne), stockez-les dans Cloud Storage pour Firebase et transmettez leurs URL à l'API Gemini Developer.
Session de chat (Plusieurs tours)
Maintenez automatiquement l'historique en utilisant startChat.
Réponses en streaming
Pour améliorer l'expérience utilisateur en affichant des résultats partiels au fur et à mesure qu'ils arrivent (comme un effet de frappe), utilisez generateContentStream au lieu de generateContent pour un affichage plus rapide des résultats.
Génération de synthèse vocale (TTS)
Générez de l'audio parlé directement sur les appareils clients sans backend vocal personnalisé. Firebase AI Logic prend en charge la synthèse vocale à l'aide de modèles Gemini TTS dédiés :
- Modèles pris en charge :
gemini-3.1-flash-tts-preview - Capacités :
- Sélection de personnalité vocale mono-locuteur (
voiceName) et dialogues multi-locuteurs (jusqu'à 2 locuteurs distincts) viaSpeechConfig/MultiSpeakerVoiceConfig - Réponses audio directes en définissant
responseModalitiessur audio - Réponses vocales en streaming avec
generateContentStreampour une lecture à faible latence - Directives audio (
[Audio Profile: ...],[Scene: ...],[Director's Note: ...]) et étiquettes émotionnelles ([whispers],[laughs],[slowly]) - Décodage et lecture côté client du PCM linéaire 24 kHz 16 bits (
audio/l16) ou du format conteneur WAV (audio/x-wav)
- Sélection de personnalité vocale mono-locuteur (
Consultez le Guide de génération de synthèse vocale (TTS) pour les détails d'implémentation complets, les modèles de streaming et les extraits de code prêts à copier-coller pour iOS (Swift), Android (Kotlin) et Web.
Générer des images avec Nano Banana
[!WARNING] Utilisez les noms de modèles d'image actuels : Vérifiez toujours la documentation des modèles Firebase AI Logic pour les noms de modèles de génération d'images (Nano Banana) actuellement pris en charge.
- Nécessite un plan de facturation Blaze pay-as-you-go mis à niveau.
Grounding de recherche avec l'outil googleSearch intégré
Plateformes et frameworks pris en charge
Les plateformes et frameworks pris en charge incluent Kotlin et Java pour Android, Swift pour iOS, JavaScript pour les applications web, Dart pour Flutter et C Sharp pour Unity.
Fonctionnalités avancées
Sortie structurée (JSON)
Appliquez un schéma JSON spécifique pour la réponse.
IA sur appareil (Hybride)
L'inférence hybride exécute des invites avec un modèle sur appareil lorsqu'il est disponible et revient à un modèle hébergé dans le cloud dans le cas contraire (ou vice versa). La disponibilité et les étapes de configuration diffèrent selon la plateforme, plus d'informations dans la documentation hybride et sur appareil, qui renvoie au guide de chaque plateforme.
Sécurité et production
Firebase App Check
[!WARNING] Exigence de sécurité critique : Pour utiliser AI Logic en toute sécurité, vous DEVEZ configurer App Check sur votre application. Cela empêche les clients non autorisés d'utiliser votre quota API et d'accéder à vos ressources backend.
Consultez App Check pour Firebase AI Logic pour les instructions de configuration. Chaque plateforme utilise son propre fournisseur d'attestation, suivez donc les instructions pour la plateforme cible.
Jetons de débogage App Check pour le développement local et CI/CD
Étant donné que les fournisseurs d'attestation App Check (comme Play Integrity ou DeviceCheck) rejettent les émulateurs, simulateurs ou environnements CI, vous devez utiliser des jetons de débogage App Check pendant le développement et les tests pour contourner l'attestation standard.
[!WARNING] CRITIQUE : Ne codez jamais en dur et ne validez jamais les jetons de débogage Les jetons de débogage App Check permettent aux clients de contourner l'attestation et d'accéder aux ressources backend sans appareil authentique. Traitez-les comme des secrets privés. Ne validez jamais les jetons de débogage dans le contrôle de version et ne codez jamais en dur les chaînes de jetons brutes dans le code client (Web, Android, iOS ou Flutter). Injectez-les toujours via des variables d'environnement locales, des configurations locales gitignorées ou des secrets CI. Si un jeton est compromis, révoquez-le immédiatement dans la console Firebase.
Développement local (généré automatiquement)
- Configurez le fournisseur App Check de votre code pour utiliser la fabrique de débogage. L'API est spécifique à la plateforme ; consultez la section App Check de la référence de la plateforme ou la documentation App Check liée ci-dessus.
- Exécutez votre application dans l'émulateur/localhost.
- Recherchez dans votre console de débogage d'exécution / Logcat l'UUID généré :
- Exemple :
AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678"
- Exemple :
- Enregistrez ce jeton dans la console Firebase sous Sécurité > App Check > Applications > Gérer les jetons de débogage.
💡 Astuce (Éviter le renouvellement des jetons de débogage) : Les réinitialisations de simulateur ou d'émulateur, les nouvelles installations et l'effacement des données du navigateur peuvent amener le SDK à générer un nouveau jeton de débogage que vous devez enregistrer à nouveau. Pour conserver un jeton de débogage stable sans le coder en dur, consultez la section App Check de la référence de la plateforme.
Pipelines CI/CD (pré-provisionnés)
- Générez et enregistrez un nouveau jeton de débogage dans la console Firebase sous Sécurité > App Check > Applications > Gérer les jetons de débogage.
- Ajoutez cette chaîne de jeton comme secret chiffré dans votre système CI (par exemple
APP_CHECK_DEBUG_TOKEN). - Configurez votre build pour transmettre ce secret comme variable d'environnement au SDK lors de l'exécution des tests.
Firebase Remote Config
Considérez que vous n'avez pas besoin de coder en dur les noms de modèles (par exemple, une chaîne de version de modèle spécifique). Utilisez Firebase Remote Config pour mettre à jour dynamiquement les versions de modèles sans déployer de nouveau code client. Consultez Modifier les noms de modèles à distance
Références de code d'initialisation
-
Android (Kotlin)
- Fournisseur d'API Gemini : API Gemini Developer
- Référence : usage_patterns_android.md
-
iOS (Swift)
- Fournisseur d'API Gemini : API Gemini Developer
- Référence : ios_setup.md
-
API Web modulaire
- Fournisseur d'API Gemini : API Gemini Developer
- Référence : usage_patterns_web.md
-
Flutter (Dart)
- Fournisseur d'API Gemini : API Gemini Developer
- Référence : flutter_setup.md
[!WARNING] CRITIQUE : Utilisez les noms de modèles actuels : Vérifiez toujours la documentation des modèles Firebase AI Logic pour les noms de modèles actuellement pris en charge. N'utilisez PAS
gemini-2.0-proougemini-2.0-flashou d'autres modèles plus anciens qui ont été arrêtés.
Références
Modèles d'utilisation du SDK Android (Kotlin) Exemples de code et modèles d'utilisation du SDK iOS Configuration du SDK Web, exemples de code et modèles d'utilisation
Exemples de code et modèles d'utilisation du SDK Flutter Génération de synthèse vocale (TTS) côté client