Ajouter Cloud Firestore et l'authentification à votre application Google AI Studio

Le mode "Build" (Créer) de Google AI Studio peut configurer et intégrer automatiquement Cloud Firestore et Firebase Authentication dans les applications Web. Il est ainsi plus facile de créer des applications avec un stockage de données persistant et des flux de connexion sécurisés. En une seule invite et quelques clics, vous autorisez l'agent Google AI Studio à configurer un projet Firebase , à associer votre application à ce projet et à générer tout le code Cloud Firestore et Authentication directement dans votre application.

Présentation : Ajouter un backend à votre application Google AI Studio

  1. Décrivez votre idée : créez une application dans Google AI Studio et décrivez une fonctionnalité qui nécessite une base de données ou une authentification. Par exemple, vous pouvez saisir l'invite suivante : Build a shared to-do list app using Firebase as a backend. (Créer une application de liste de tâches partagée à l'aide de Firebase comme backend).

  2. Activez l'intégration Firebase : dans la fiche qui s'affiche, vous pouvez personnaliser votre configuration :

    • Sélectionnez un emplacement (facultatif) : choisissez l'emplacement de votre base de données et de votre application à l'aide du menu déroulant "Emplacement".
    • Sélectionnez un projet (facultatif) : cliquez sur l'icône Settings (Paramètres), sélectionnez le Google Cloud projet que vous souhaitez utiliser, puis cliquez sur Save (Enregistrer).
    • Confirmez votre sélection : pour continuer, cliquez sur le bouton Enable Firebase (Activer Firebase).

    L'agent associe ensuite automatiquement votre application à votre projet Firebase et génère le code Cloud Firestore et Authentication nécessaire, y compris un /src/lib/firebase.ts et un firestore.rules.

  3. Déployez : une fois que vous êtes prêt, utilisez l'option Share > Publish (Partager > Publier) pour déployer votre application Web sur Cloud Run. Votre application sera automatiquement déployée dans le même projet que celui que vous avez sélectionné lors de la configuration.

Comprendre le quota partagé pour Cloud Firestore

Toutes les Cloud Firestore bases de données provisionnées par l'agent Google AI Studio sont placées dans le même "groupe" de bases de données de votre projet Firebase. Elles partagent toutes les caractéristiques suivantes :

  • Quota partagé : toutes les bases de données du groupe partagent un quota d'utilisation (voir les détails ci-dessous).
  • Aucun compte Cloud Billing n'est requis : vous pouvez créer et tester votre application sans ajouter de facturation. Consultez les détails ci-dessous pour savoir comment ajouter la facturation de manière facultative.
  • Réinitialisations quotidiennes : si vous atteignez une limite de quota quotidienne (par exemple, 50 000 lectures/jour), le service sera mis en pause pour toutes les bases de données du groupe et reprendra le lendemain vers minuit, heure du Pacifique.

Cloud Firestore bases de données du groupe de quotas partagés partagent les limites suivantes :

Métrique Quota
Données stockées 1 Gio au total
Sortie réseau 10 Gio par mois
Unités d'écriture 40 000 écritures par jour
Unités de lecture 50 000 lectures par jour
Unités de mises à jour en temps réel 50 000 mises à jour par jour

(Facultatif) Ajouter la facturation pour obtenir plus de Cloud Firestore quota

Si votre application gagne en popularité et que vous devez dépasser les limites sans frais pour Cloud Firestore, vous pouvez passer votre projet au forfait Blaze avec paiement à l'usage.

  1. Ajoutez la facturation (si ce n'est pas déjà fait) : accédez à la Firebase console et associez un compte de facturation à votre projet.

  2. Mettez à niveau la base de données : par défaut, les bases de données Cloud Firestore créées par l'agent Google AI Studio continuent d'utiliser le quota partagé même après la mise à niveau de votre forfait. Pour activer la mise à l'échelle payante complète pour une base de données spécifique, vous devez la retirer manuellement du groupe à l'aide d'une commande curl.

    • PROJECT_ID : ID du projet Firebase. Vous trouverez cet ID dans les Paramètres du projet de la console Firebase.

    • DATABASE_ID : ID de la base de données Cloud Firestore, qui correspond à l'ID de votre applet. Vous trouverez cet ID de base de données dans la colonne Name (Nom) de la page des bases de données Cloud Firestore de la console Firebase.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/DATABASE_ID?updateMask=free_tier_limited" \
    -d '{"free_tier_limited": false}'
    

Vérifier la mise à niveau de la base de données

La modification visant à désactiver le quota partagé et à activer la facturation à l'usage pour votre base de données devrait prendre effet en quelques minutes. Vous pouvez vérifier la modification à l'aide de l'une des options suivantes :

  • Testez votre application (recommandé) : le moyen le plus fiable de confirmer la mise à niveau consiste à utiliser votre application. Effectuez les Cloud Firestore opérations qui dépassaient auparavant les limites quotidiennes sans frais (par exemple, en dépassant les seuils de l'édition Cloud Firestore Enterprise de 50 000 unités de lecture ou 40 000 unités d'écriture). Ces opérations devraient maintenant réussir sans erreurs RESOURCE_EXHAUSTED.

  • Vérifiez l'état de la base de données via l'API : vous pouvez utiliser une requête curl GET pour récupérer les détails actuels de la base de données :

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/DATABASE_ID"
    

    Inspectez la réponse JSON. La base de données est mise à niveau et n'est plus limitée si le champ freeTierLimited est absent de la réponse.

    Comprendre freeTier et freeTierLimited: vous verrez probablement toujours voir "freeTier": true dans la réponse GET. Ce champ est distinct du paramètre freeTierLimited que vous avez modifié. "freeTier": true est lié à l'origine de la base de données et à la possibilité d'utiliser le niveau sans frais. Cela ne signifie pas que les limites quotidiennes sont toujours appliquées une fois que vous avez défini freeTierLimited sur false. La désactivation réussie des limites est indiquée par l'absence de freeTierLimited dans la réponse GET.

Si votre application rencontre toujours des erreurs de limite quotidienne après plusieurs minutes d'attente, et qu'une requête GET indique que le champ freeTierLimited est effectivement absent, assurez-vous que le compte de facturation de votre projet est en règle.

Génération Security Rules

L'Google AI Studio agent génère automatiquement Firebase Security Rules en fonction de la logique de votre application. Ces Security Rules sont conçues pour être "refusées par défaut", ce qui signifie que les utilisateurs finaux de votre application ne peuvent accéder qu'aux données qui leur appartiennent.

Notez que si vous ajustez manuellement vos Security Rules directement dans la Firebase console, l'agent Google AI Studio n'en sera pas informé et elles seront écrasées lors des itérations ultérieures de l'application. Nous vous recommandons d'utiliser l'agent Google AI Studio pour ajuster vos Firebase Security Rules afin de vous assurer que vos modifications sont conservées et alignées sur la logique de votre application.

Utiliser un projet existant

Lorsque vous activez l'intégration Firebase pour la première fois, vous pouvez éventuellement sélectionner un projet Google Cloud existant dont vous êtes propriétaire :

  1. Dans la fiche qui s'affiche, cliquez sur l'icône Settings (Paramètres) .
  2. Sélectionnez votre projet, puis cliquez sur Save (Enregistrer).

Au fur et à mesure que vous itérez sur votre application, vous pouvez également demander à l'agent d'utiliser un autre projet avec une invite telle que :

Add Firestore to this app using project PROJECT_ID.

Lorsque vous choisissez un projet, les actions suivantes se produisent :

  • Une nouvelle base de données Cloud Firestore est provisionnée dans ce projet à l'aide du quota partagé.
  • Firebase Authentication avec Google Sign-In est configuré.
  • Un compte de service se voit accorder l'accès à votre base de données Cloud Firestore. Pour autoriser l'accès administrateur depuis Google AI Studio, un nouveau compte de service nommé ais-sandbox@PROJECT_ID.iam.gservice.com sera autorisé à accéder à votre Cloud Firestore base de données. Ce compte n'est associé qu'à vos Google AI Studio applications.
  • Limites : si le projet Firebase comporte déjà une Cloud Firestore base de données, l'agent ne pourra pas en ajouter une autre. Vous devrez sélectionner un autre projet ou en créer un vide à utiliser.

Utiliser la Firebase console

Vous pouvez afficher les données et les paramètres de votre application dans la console Firebase. Pour accéder à vos projets associés à Google AI Studio, procédez comme suit :

  1. Accédez à la Firebase console et sélectionnez le projet libellé AI Studio.
  2. Dans le volet de navigation de gauche, cliquez sur Build > Cloud Firestore Database pour afficher et modifier vos données dans Cloud Firestore, ou cliquez sur Build > Authentication pour configurer vos paramètres et données Authentication.

Dépannage et FAQ

Trouvez les réponses aux questions fréquentes et découvrez comment résoudre les problèmes lors de l' intégration de Firebase à votre Google AI Studio application.

Comment mon projet et mon emplacement Google Cloud / Firebase sont-ils sélectionnés ?

Lorsque vous demandez un backend Firebase pour une application, vous pouvez éventuellement sélectionner un emplacement et un projet dans la fiche qui s'affiche :

  • Sélectionnez un emplacement (facultatif) : choisissez l'emplacement de votre base de données et de votre application à l'aide du menu déroulant "Emplacement".
  • Sélectionnez un projet (facultatif) : cliquez sur l'icône Settings (Paramètres) , sélectionnez le Google Cloud projet que vous souhaitez utiliser, puis cliquez sur Save (Enregistrer).

Tenez bien compte des éléments suivants :

  • L'emplacement de la base de données est permanent : une fois que vous avez sélectionné un emplacement pour votre base de données, vous ne pouvez plus le modifier pour ce projet. Ce choix sera utilisé par défaut pour les autres services de backend.
  • Cohérence du projet : pour garantir une intégration fluide, Google AI Studio utilise automatiquement le même projet pour votre backend et votre déploiement. Vous ne pouvez pas utiliser différents projets pour différents services au sein de la même application.

Quelles méthodes d'authentification sont compatibles ?

L'agent Google AI Studio configure Google Sign-In lorsque vous demandez à configurer Authentication. Pour configurer des méthodes supplémentaires, activez-les dans la Firebase console et demandez à l'agent Google AI Studio de vous aider à mettre à jour votre code.

Puis-je créer une application mobile (comme Android ou iOS) avec Google AI Studio ?

Actuellement, l'agent Google AI Studio ne peut créer que des applications Web. Pour en savoir plus sur les éléments compatibles, consultez la Google AI Studio documentation de l'agent.

Notez toutefois que, comme toutes les applications Web, les applications créées par Google AI Studio sont accessibles en tant qu'applications Web mobiles à partir des navigateurs installés sur les appareils mobiles.

Qu'est-ce que le fichier firebase-blueprint.json ?

Il s'agit d'un fichier intermédiaire utilisé par l'agent Google AI Studio pour comprendre le code de votre application. Ne modifiez pas ce fichier manuellement, car cela pourrait entraîner l'agent à générer un code incorrect ou non sécurisé Security Rules.

Que dois-je faire si je reçois une erreur "Quota exceeded" (Quota dépassé) ?

Si vous atteignez une limite de quota Cloud Firestore, cela signifie que votre application a atteint sa limite d'utilisation quotidienne pour votre groupe de quotas partagés de base de données Cloud Firestore. Vous pouvez résoudre ce problème de deux manières :

  • Option 1 : Attendre : les quotas sont réinitialisés tous les jours vers minuit, heure du Pacifique.
  • Option 2 : Mettre à niveau : passez au forfait Blaze avec paiement à l'usage.
    • Si l'agent Google AI Studio a configuré Cloud Firestore pour vous, vous devez ensuite utiliser la commande curl décrite dans Ajouter la facturation pour obtenir plus de quota Cloud Firestore afin de passer votre base de données à un état payant standard. Si vous avez configuré Cloud Firestore manuellement, l'exécution de la commande curl n'est pas nécessaire.

Que dois-je faire si je reçois une erreur "Missing or insufficient permissions" (Autorisations manquantes ou insuffisantes) ?

Cette erreur se produit lorsque votre application tente de lire ou d'écrire des données dans votre Cloud Firestore base de données, mais que la requête est rejetée par votre Security Rules. Cela indique que les Security Rules n'autorisent pas l' opération tentée en fonction de l'état d'authentification ou du chemin d'accès aux données actuel. Cliquez sur le bouton Fix error (Corriger l'erreur) pour inviter l'agent Google AI Studio à tenter de corriger les Security Rules.

Qu'advient-il de mon backend Firebase lorsque je supprime mon application Google AI Studio ?

La suppression de votre application dans Google AI Studio ne supprime pas automatiquement le projet Firebase, la base de données Cloud Firestore ni les configurations Firebase Authentication associés.

Si vous avez ajouté un backend Firebase, vous devez accéder manuellement à la Firebase console et supprimer le projet ou nettoyer les ressources individuelles (telles que l'instance de base de données Cloud Firestore et les fournisseursAuthentication) pour vous assurer que toutes les données et configurations sont supprimées.

L'agent Google AI Studio peut-il supprimer ou modifier des données dans ma base de données Cloud Firestore ?

L'agent Google AI Studio est conçu pour vous aider à provisionner les ressources de backend nécessaires , ainsi qu'à générer du code et Security Rules. Bien que l'agent lui-même ne puisse pas supprimer, modifier ni manipuler directement les entrées de données dans votre Cloud Firestore base de données, il peut écrire du code dans votre application conçu pour effectuer ces actions. Pour effectuer des tâches de gestion des données, telles que la suppression d'entrées, accédez à la page de la base de données dans la console.Cloud FirestoreFirebase

J'appartiens à une organisation qui utilise Google Cloud. Puis-je associer mon application Google AI Studio à un projet existant dans l'environnement Google Cloud de mon organisation ?

Oui. Assurez-vous que votre projet Firebase est placé dans le Google Cloud dossier de votre organisation, puis associez votre projet à l'aide de l'une des méthodes suivantes :

  • Lors de l'activation : lorsque vous activez l'intégration Firebase pour la première fois dans Google AI Studio, sélectionnez votre projet existant dans la fiche qui s'affiche. Cliquez sur l'icône Settings , sélectionnez votre projet, puis cliquez sur Save.
  • Lors de l'itération : si vous avez déjà activé Firebase ou si vous souhaitez changer de projet ultérieurement, vous pouvez demander à l'agent d'utiliser votre projet existant avec une invite telle que :

      Add Firestore to this app using project PROJECT_ID.
    

Pourquoi ne puis-je pas trouver certains documents dans la Firebase console ?

Lorsque l'agent AI Studio enregistre des données dans un chemin d'accès imbriqué (comme /users/user1/messages/msg1) sans d'abord créer le document parent (user1), il crée ce que l'on appelle un document parent inexistant. Ces documents ne s'affichent pas dans la Firebase console, ce qui peut les rendre difficiles à trouver lorsque vous parcourez votre Cloud Firestore base de données. Bien que cela n'affecte pas le fonctionnement de votre application, vous pouvez souvent décrire le problème à l'agent AI Studio pour l'inviter à créer les documents parents manquants.

Pour en savoir plus, consultez la section Documents parents inexistants.

Puis-je choisir l'emplacement de ma base de données Cloud Firestore ?

Oui. Lorsque vous activez l'intégration Firebase pour la première fois dans Google AI Studio, vous pouvez sélectionner l'emplacement de votre base de données Cloud Firestore.

N'oubliez pas que l'emplacement que vous sélectionnez s'applique à toutes Cloud Firestore bases de données que l'Google AI Studio agent crée dans ce projet Firebase. Une fois défini, cet emplacement ne peut plus être modifié pour ces bases de données.

Comment Google utilise-t-il mes données (par exemple, le code et les invites) dans Google AI Studio ?

Pour en savoir plus sur l'utilisation de vos données, consultez les Conditions d'utilisation supplémentaires de l'API Gemini.

J'ai reçu un e-mail de Google Cloud concernant une "clé API Google accessible publiquement pour mon projet Google Cloud". Que dois-je faire ?

Si vous avez reçu un e-mail de Google Cloud concernant une "clé API Google accessible publiquement pour votre projet Google Cloud" et que la clé API indiquée dans l'e-mail est votre clé API Firebase, assurez-vous qu'elle répond aux exigences suivantes pour pouvoir être incluse en toute sécurité dans votre code ou vos fichiers de configuration. Vous pouvez vérifier les points suivants dans le API et services > Identifiants panneau de la Google Cloud console.

  • Il s'agit de la clé API que vous utilisez pour votre application Firebase et uniquement pour les services Firebase. Ces clés sont généralement appelées Browser key (auto created by Firebase) ou Android key (auto created by Firebase) ou iOS key (auto created by Firebase).
  • Elle inclut toutes les API liées à Firebase requises dans la liste d'autorisation "Restrictions d'API" de la clé.
  • Elle ne comporte aucune autre API dans sa liste d'autorisation "Restrictions d'API" En particulier, la liste ne doit pas contenir Generative Language API.

Assurez-vous également d'utiliser Firebase Security Rules et App Check comme recommandé pour les produits Firebase que vous utilisez.

Pour en savoir plus sur les clés API pour Firebase et consulter une liste de questions fréquentes, consultez En savoir plus sur l'utilisation et la gestion des clés API pour Firebase