【问题标题】:Firestore automatic backup using new Pub/Sub function使用新的 Pub/Sub 功能的 Firestore 自动备份
【发布时间】:2019-08-30 07:40:44
【问题描述】:

所以几个月来,Firestore 支持https://firebase.googleblog.com/2019/04/schedule-cloud-functions-firebase-cron.html

在安排数据导出的指南中,推荐的方法是通过 App Engine:https://firebase.google.com/docs/firestore/solutions/schedule-export

我想知道是否可以直接从预定的云功能执行此操作。如果是这样,要走的路是什么? googleapis如何使用,具体如何配置范围,如何调用exportDocumentsREST资源...

【问题讨论】:

    标签: firebase google-cloud-firestore google-cloud-functions


    【解决方案1】:

    我还没有构建函数,但到目前为止,我已经设法使用我使用服务帐户密钥编写的这个脚本来完成它。

    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-node 来执行它:

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

    【讨论】:

    • 好的,会在接下来的几天内尝试并报告,谢谢:)
    • @pepe 对我来说,是的。完全相同的代码就是我进行备份的方式。我还没有测试如何将它导入回来,但是文件正在创建中,我可以在存储桶中看到它们。
    • 它很好用 :) 虽然,备份只有在需要时可以重新应用时才有用......你知道怎么做吗?我猜需要importDocuments,但我不确定如何
    • 是的,正在创建文件,虽然格式有点奇怪 - all_namespaces/all_kinds 然后是一堆 output-x 的东西
    • 好的,做到了,这很简单 - 称为 importDocuments 而不是 exportDocuments,将 outputUriPrefix 修改为 inputUriPrefix 及其对我希望导入的文件夹的值(带有日期之前创建的文件夹名称)。
    猜你喜欢
    • 2019-12-21
    • 2021-11-19
    • 2020-03-27
    • 2021-10-05
    • 2020-11-01
    • 1970-01-01
    • 2020-06-23
    • 2012-06-08
    • 2011-06-23
    相关资源
    最近更新 更多