Exigence d'App Engine

Si votre base de données Firestore est associée à une application App Engine, elle doit disposer d'une application App Engine active dans le même projet. Sans l'application App Engine active, l'accès en lecture et en écriture à la base de données est désactivé.

Configuration requise pour App Engine

Une application App Engine active signifie qu'une application existe dans le même projet et que cette application n'est pas désactivée. Cette application n'a pas besoin d'être utilisée. L'application et la base de données associées doivent exister dans la même région.

Si vous désactivez votre application App Engine, vous désactivez également l'accès à la base de données Firestore associée à cette application.

Mise à jour de l'exigence

Dans une prochaine version de Firestore, les nouvelles bases de données seront dissociées par défaut d'App Engine. En outre, toutes les bases de données, nouvelles et existantes, devront répondre aux exigences suivantes:

  • Pour gérer votre base de données à partir de Google Cloud Console et de gcloud CLI, l'API Firestore doit être activée dans le projet. Cette opération est nécessaire pour Firestore en mode natif et pour Firestore en mode Datastore.
  • Lorsqu'elles sont exécutées à partir de Google Cloud Console ou de gcloud CLI, les opérations d'administration ci-dessous nécessitent les autorisations IAM suivantes:

    • Créer la base de données: datastore.databases.create
    • Afficher les métadonnées de la base de données: datastore.databases.getMetadata
    • Modifier les métadonnées de la base de données: datastore.databases.update
Si votre base de données est affectée par la modification des exigences, l'avis suivant s'affiche sur les pages Firestore de Google Cloud Console:

L'API Firestore sera bientôt nécessaire pour administrer votre base de données. Veuillez activer l'API et vous assurer que vous disposez des autorisations requises.

Vérifiez vos autorisations IAM pour vous assurer que votre accès à la base de données n'est pas affecté. Si vous utilisez un rôle personnalisé, il peut ne pas disposer de l'autorisation datastore.databases.getMetadata. datastore.databases.getMetadata accepte les rôles personnalisés.

Mettre à jour les autorisations IAM

Vérifiez que les comptes accédant à la base de données via Google Cloud Console disposent des autorisations requises:

  • Créer la base de données : datastore.databases.create
  • Afficher les données: datastore.databases.getMetadata
  • Modifier les données : datastore.databases.update

Les rôles prédéfinis tels que Utilisateur Datastore et Lecteur Datastore incluent les autorisations requises. Si vous avez créé des rôles IAM personnalisés, vous devrez peut-être les mettre à jour pour inclure les autorisations ci-dessus.

Si vous gérez l'accès à la console à l'aide d'un rôle personnalisé, assurez-vous de pouvoir continuer à y accéder en mettant à jour vos rôles personnalisés avec datastore.databases.getMetadata ou en utilisant un rôle prédéfini.

Si vous désactivez une application App Engine associée, vous désactivez également l'accès en lecture et en écriture à votre base de données. Dans ce cas, la page Données Firestore de Google Cloud Console vous permet de dissocier votre base de données de l'application App Engine. Cliquez sur Dissocier la base de données pour commencer le processus.

Accéder aux données Firestore

Vous pouvez également dissocier votre base de données via l'API REST.

curl -X PATCH
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header "Content-type: application/json" \
--data '{"app_engine_integration_mode": "DISABLED"}' \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/(default)?updateMask=appEngineIntegrationMode"

Lorsque vous dissociez votre base de données, vous pouvez désactiver App Engine sans affecter l'accès à votre base de données. La dissociation est définitive. La prise en compte de l'opération de dissociation peut prendre jusqu'à cinq minutes.

Vous pouvez également vérifier l'état de dissociation via l'API REST.

curl  --header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header "Content-type: application/json" \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/(default)"