因此,我希望能够像创建“开发”集合一样创建数据库的快照。
我可以使用此处https://firebase.google.com/docs/firestore/manage-data/export-import#export_data的教程导出当前在Firestore上的所有数据。
Firebase仅显示如何从存储导出的文件 中导入特定集合。
如何将导出导入到Firestore中的特定“开发”集合?
例如:
Cloud Firestore数据库集合(第1天)
-> 将所有这些数据导出到Google Cloud Platform存储桶 -> 将所有导出的数据导入“开发”集合
Cloud Firestore数据库集合(第2天)
然后我可以将此开发集合用作测试的数据库快照,然后其他集合可以照常用于生产中。
答案 0 :(得分:1)
Cloud SDK中没有此类功能(使用gcloud firestore
),但是很容易通过编程方式完成。有两句话:
如果您对上面的方法没问题,那就很简单。这是一个执行此操作的示例,用于记录JS(quickstart)集合“ devCol”中的“ devDoc”:
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();
devRefsegments = ["devCol","devDoc"];
db.listCollections().then(colList => {
colList.forEach(colRef =>
colRef.get().then(colSnap => {
colSnap.forEach(prop => {
var path = makepath(devRefsegments,prop._ref._path.segments);
db.doc(path).set( prop.data()).then(r => console.log(r));
});
})
);
});
function makepath(devRefsegments, segments) {
return "/"+devRefsegments.join("/")+"/"+segments.join("/");
}
我正在GCP Cloud Shell中运行它,但是,如果需要,您可以轻松地使它具有云功能。当然,您也可以使用其他语言。我建议尝试使用小型数据库,以避免启动时产生成本。
答案 1 :(得分:0)
我有相同的任务要做。我看了很多文章。但是我正在向您解释完成此任务的最简单方法。
假设您在项目db_to_be_export_project中有一个数据库db_to_be_export,并且您想将此数据库的数据导入另一个项目的数据库db_to_be_import_project。数据库名称为db_to_be_import。
需要遵循的步骤
Now run this command "npx -p node-firestore-import-export firestore-export -a Export.json -b backup.json"
Now run this last command "npx -p node-firestore-import-export firestore-import -a Import.json -b backup.json"
现在在firestore控制台中打开数据库“ db_to_be_import”,现在可以看到数据库“ db_to_be_export”中的完整数据。