Bases de Firebase AI Logic
Vue d'ensemble
Firebase AI Logic est un produit Firebase qui permet aux développeurs d'ajouter de 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 for Firebase".
Il prend en charge les deux fournisseurs d'API Gemini :
- Gemini Developer API : propose un niveau gratuit idéal pour le prototypage, et un paiement à l'utilisation pour la production.
- Agent Platform Gemini API (anciennement Vertex AI) : idéal pour passer à l'échelle avec une préparation à la production de niveau entreprise, nécessite le plan de tarification Blaze.
Utilisez la Gemini Developer API par défaut, et l'Agent Platform Gemini API (anciennement Vertex AI) uniquement 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, donc Node.js 20+ et npm sont nécessaires. Utilisez le skillfirebase-basicspour les vérifier et pour vous connecter à la Firebase CLI. Si Node.js est manquant ou plus ancien que la version 20, demandez à l'utilisateur de l'installer comme décrit dans ce skill. N'installez pas vous-même de paquets système, par exemple avecsudo apt-get, car cela modifierait 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 fichier
firebase.json). -
Vérifiez que vous exécutez les commandes Firebase CLI sur 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 la Gemini Developer API 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 sautez PAS cette étape. Les requêtes de l'application vers les modèles Gemini échoueront tant que le service Firebase AI Logic n'est pas 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 à la plateforme. Avant d'écrire du code, lisez la référence pour la plateforme cible répertoriée dans la section Références de code d'initialisation.
Plus d'informations dans Firebase AI Logic - Premiers pas
Fonctionnalités principales
[!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 de texte uniquement
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 les 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 sous forme de données en ligne avec leur type MIME. Pour les fichiers de plus de 20 mégaoctets (qui peuvent provoquer des erreurs HTTP 413 sous forme de données en ligne), stockez-les dans Cloud Storage pour Firebase et transmettez leurs URL à la Gemini Developer API.
Session de chat (Multi-tours)
Conservez automatiquement l'historique en utilisant startChat.
Réponses en streaming
Pour améliorer l'expérience utilisateur en affichant les 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 d'un persona vocal 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 balises é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 d'un persona vocal 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.
Ancrage 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)
Imposer un schéma JSON spécifique pour la réponse.
IA sur l'appareil (Hybride)
L'inférence hybride exécute les invites avec un modèle sur l'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 l'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 d'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, les simulateurs ou les 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 jamais coder en dur ni valider 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 ignorées par git ou des secrets CI. Si un jeton est compromis, révoquez-le immédiatement dans la console Firebase.
Développement local (Auto-généré)
- 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 les logs de votre console de débogage / 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 du simulateur ou de l'é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 devrez réenregistrer. 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èle sans déployer de nouveau code client. Consultez Changer les noms de modèles à distance
Références de code d'initialisation
-
Android (Kotlin)
- Fournisseur d'API Gemini : Gemini Developer API
- Référence : usage_patterns_android.md
-
iOS (Swift)
- Fournisseur d'API Gemini : Gemini Developer API
- Référence : ios_setup.md
-
API modulaire Web
- Fournisseur d'API Gemini : Gemini Developer API
- Référence : usage_patterns_web.md
-
Flutter (Dart)
- Fournisseur d'API Gemini : Gemini Developer API
- 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, exemples de code et modèles d'utilisation du SDK Web
Exemples de code et modèles d'utilisation du SDK Flutter Génération de synthèse vocale (TTS) côté client