gcloud Firestore 导入:PERMISSION_DENIED

gcloud Firestore import: PERMISSION_DENIED

我正在尝试将包含 Firestore 数据库导出的存储桶导入到另一个 Firebase 项目中。我一直在关注 this guide 如何做到这一点。

当运行宁gcloud firestore import时,我运行进入以下问题:

ERROR: (gcloud.firestore.import) PERMISSION_DENIED: Service account does not have access to Google Cloud Storage file: /bucket/EXPORT_PREFIX.overall_export_metadata. See https://cloud.google.com/datastore/docs/export-import-entities#permissions for a list of permissions needed. Error details: service-XXX@gcp-sa-firestore.iam.gserviceaccount.com does not have storage.buckets.get access to the Google Cloud Storage bucket.

不过,我确实使用了以下命令来 g运行t 访问存储桶:

gsutil iam ch serviceAccount:SOURCE_PROJECTID@appspot.gserviceaccount.com:admin gs://bucket_name

这并没有给我任何错误,所以我假设它 运行 正如预期的那样。我三重检查并相信我在使用这些命令时在正确的项目中工作。

我认为 import 命令可能 运行 与另一个服务帐户而不是 SOURCE_PROJECTID@appspot.gserviceaccount.com:admin,但我不确定这一点或如何确保使用正确的服务帐户.

如果您能帮助解决这个问题,我们将不胜感激! :)

错误消息似乎包含有问题的服务帐户:

Error details:
service-XXX@gcp-sa-firestore.iam.gserviceaccount.com
does not have storage.buckets.get access to the Google Cloud Storage bucket.

我认为你需要:

gsutil iam ch \
serviceAccount:[service-XXX]@gcp-sa-firestore.iam.gserviceaccount.com:objectViewer \
gs://[bucket-name]

替换 [service-XXX][bucket-name]