使用新的发布/订阅功能恢复自动备份



所以几个月来,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资源...

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

火库备份.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:...srcadminScripts> npx babel-node firestoreBackup.js

最新更新