我可以将 Firestore 数据导出到本地文件路径而不是 Cloud Storage 路径吗?

问题描述 投票:0回答:2

我使用此代码将 Firestore 数据导出到存储桶文件夹:

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://PROJECT_NAME.firebaseio.com"
});

const client = new admin.firestore.v1.FirestoreAdminClient({});

async function doFirestoreBackup() {
  try {
    const response = await client.exportDocuments({
      name: client.databasePath('PROJECT_NAME','(default)'),
      outputUriPrefix: 'gs://PROJECT_NAME.appspot.com/firestore-backups/2020-12-02-T-12H00/'
    });
    console.log(response);
  }
  catch(err) {
    console.log(err.msg);
  }
}

我可以以某种方式将导出的数据保存到我的电脑上的本地路径吗?而不是在

outputUriPrefix
上使用存储桶文件夹?

这是我找到的相关文档,但我不明白我想要的是否可能:

https://googleapis.dev/nodejs/firestore/latest/google.firestore.admin.v1.FirestoreAdmin.html#exportDocuments1

https://googleapis.dev/nodejs/firestore/latest/google.firestore.admin.v1.ExportDocumentsRequest.html

https://googleapis.dev/nodejs/firestore/latest/google.firestore.admin.v1.ExportDocumentsResponse.html

node.js firebase google-cloud-firestore
2个回答
1
投票

有关 导出数据的 Firestore 文档开头为:

导出操作会将数据库中的文档复制到 Cloud Storage 存储桶中的一组文件。

因此,似乎可以肯定它只能导出到 Cloud Storage 存储桶。如果您想在本地获取导出的数据,则必须首先运行导出过程,然后使用

gcloud
CLLI 等工具或通过 Cloud Storage API 将数据从存储桶检索到本地系统。


0
投票

当然!要将 Firestore 数据导出到本地模拟器,请按照以下步骤操作:

第 1 步:登录 Firebase 或 Google Cloud

firebase login

gcloud auth login

第 2 步:连接到您的项目

firebase use your-project-name

gcloud config set project your-project-name

第 3 步:将生产数据导出到 Google Cloud Storage 存储桶文件夹

gcloud firestore export gs://your-project-name.appspot.com/<your-choosen-folder-name>

第4步:将存储桶文件夹复制到本地机器

gsutil -m cp -r gs://your-project-name.appspot.com/<your-choosen-folder-name> /path/to/some/folder

这一系列命令可确保将 Firestore 数据顺利导出到本地模拟器。确保将

<your-choosen-folder-name>
/path/to/some/folder
替换为您所需的文件夹名称和本地文件路径。

编码愉快!如果您还有任何疑问或遇到问题,请随时询问。

© www.soinside.com 2019 - 2024. All rights reserved.