我按照 Google Cloud 说明执行了gsutil 安装指南,并且已将GCloud 组件更新到最新版本。我最近刚刚安装并配置了 GCloud 以使用我的凭据和项目。首先,我使用以下命令从Firestore导出我需要的单个集合:
gcloud firestore export gs://my-project-id.appspot.com --collection-ids=theCollectionINeed
Run Code Online (Sandbox Code Playgroud)
现在我看到这个导出在我的 Firebase 控制台存储部分作为一个文件夹。作为项目Owner,我想将此导出到我的本地系统。为此,我认为我需要使用gsutil才能复制它。阅读从您的存储桶下载对象的说明,我尝试使用以下命令,但出现此错误:
$ gsutil cp -r gs://m-project-id.appspot.com/2020-05-22T02:01:06_86154 .
Copying gs://lucky-level-dev-6ac34.appspot.com/2020-05-22T02:01:06_86154/2020-05-22T02:01:06_86154.overall_export_metadata...
OSError: The filename, directory name, or volume label syntax is incorrect.
Run Code Online (Sandbox Code Playgroud)
我cmd在 Windows 10 环境中运行此命令。我希望能够将此文件夹从云下载到我的本地驱动器。
之后,我尝试按照建议更改存储桶文件夹(对象前缀):
gsutil mv gs://my-project-id.appspot.com/2020-05-22T02:01:06_86154 gs://my-project-id.appspot.com/2020-06-23_someFolder
Run Code Online (Sandbox Code Playgroud)
但是现在再试一次会给我一个新的错误:
gsutil cp -r gs://my-project-id.appspot.com/2020-05-22_someFolder .
Copying gs://my-project-id.appspot.com/2020-05-22_someFolder/2020-05-22T02:01:06_86154.overall_export_metadata...
OSError: Invalid argument.9.0 B]
Run Code Online (Sandbox Code Playgroud)
当然我也需要更改文件名吗?
每当我启动模拟器时,我都必须为实时数据库导入数据库,有时还需要手动为 firestore 制作顶级集合。
有没有办法设置模拟器,以便数据库已经准备好?
我不希望其中填充来自实际项目的所有数据,而是填充一些足以进行本地开发的虚拟数据。
再次强调,我并不是要求此设置来运行测试(如此处所述),而是用于日常开发。
firebase firebase-realtime-database google-cloud-functions google-cloud-firestore firebase-cli