我正在尝试将包含 Firestore 数据库导出的存储桶导入到另一个 Firebase 项目中。我一直在关注本指南 https://firebase.google.com/docs/firestore/manage-data/move-data关于如何做到这一点。
当运行gcloud firestore import
,我遇到了以下问题:
错误:(gcloud.firestore.import)PERMISSION_DENIED:服务帐户无权访问 Google Cloud Storage 文件:/bucket/EXPORT_PREFIX.overall_export_metadata。看https://cloud.google.com/datastore/docs/export-import-entities#permissions https://cloud.google.com/datastore/docs/export-import-entities#permissions获取所需权限的列表。错误详情:[电子邮件受保护] /cdn-cgi/l/email-protection没有 storage.buckets.get 访问 Google Cloud Storage 存储桶的权限。
不过,我确实使用以下命令授予对存储桶的访问权限:
gsutil iam ch serviceAccount:SOUR[email protected] /cdn-cgi/l/email-protection:admin gs://bucket_name
这没有给我任何错误,所以我认为它按预期运行。我三次检查并相信我在使用这些命令时正在正确的项目中工作。
我认为也许import
命令是使用另一个服务帐户运行的[email protected] /cdn-cgi/l/email-protection:admin
,但我不确定这一点或不确定如何确保使用正确的服务帐户。
任何有关解决此问题的帮助将不胜感激! :)
错误消息似乎包含有问题的服务帐户:
Error details:
[email protected] /cdn-cgi/l/email-protection
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]
and [bucket-name]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)