Firebase 使用新发布/订阅功能的Firestore自动备份

Firebase 使用新发布/订阅功能的Firestore自动备份,firebase,google-cloud-firestore,google-cloud-functions,Firebase,Google Cloud Firestore,Google Cloud Functions,因此,Firestore支持了几个月 在《计划数据导出指南》中,建议通过App Engine执行此操作: 我想知道是否有可能直接从一个云函数中执行它。如果是这样的话,怎么办?如何使用googleapis,特别是如何配置作用域,如何调用exportDocumentsREST资源…我还没有构建该函数,但到目前为止,我已经使用我用服务帐户密钥编写的脚本实现了这一点 firestoreBackup.js import * as admin from 'firebase-admin'; import se

因此,Firestore支持了几个月

在《计划数据导出指南》中,建议通过App Engine执行此操作:


我想知道是否有可能直接从一个云函数中执行它。如果是这样的话,怎么办?如何使用googleapis,特别是如何配置作用域,如何调用
exportDocuments
REST资源…

我还没有构建该函数,但到目前为止,我已经使用我用服务帐户密钥编写的脚本实现了这一点

firestoreBackup.js

import * as admin from 'firebase-admin';
import serviceAccount from './serviceAccounts/your-service-account-key.js';

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

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

async function doFirestoreBackup() {
  try {
    const response = await client.exportDocuments({
      name: client.databasePath('your-project-name','(default)'),
      outputUriPrefix: 'gs://your-project.appspot.com/firestore-backups/2019-08-25-T-12H00/'  // THIS IS YOUR BUCKET. YOU CAN CHOOSE THE FOLDER
    });
    console.log(response);
  }
  catch(err) {
    console.log(err.msg);
  }
}

doFirestoreBackup();
我正在使用
babel节点执行它:

// TO RUN THE SCRIPT (NAVIGATE TO FOLDER)
C:\...\src\adminScripts\> npx babel-node firestoreBackup.js

好的,我将在未来几天内尝试并报告,谢谢:)@pepe为我,是的。同样的代码就是我备份的方式。我还没有测试过如何将其导入,但是正在创建文件,我可以在bucket中看到它们。它工作得很好:)尽管如此,备份只有在需要时可以重新应用时才有用。。。你知道怎么做吗<代码>导入文档
是必需的,我想,但我不确定文件是如何创建的,尽管它的格式有点奇怪-
所有名称空间/所有种类
,然后是一堆
输出-x
东西好吧,是这样做的,它非常简单-称为
导入文档
,而不是
导出文档
,使用
inputUriPrefix
及其值修改了
outputUriPrefix
,并将其值添加到我要导入的文件夹中(以较早创建的日期作为文件夹名称)。