用于将树分支从集合移动到另一个集合的Firebase API
Firebase API for moving a tree branch from a collection to another one
在我的应用程序中,我需要将一个相当大的集合分支移动到另一个集合。目前,我正在使用类似的东西:
srcRef
.startAt(start)
.endAt(end)
.once('value', function(snap) {
destRef.set(snap.exportVal());
});
显然,这是相当昂贵的,所以我的问题是:为什么Firebase不提供一个简单的API?类似:
srcRef.moveTo(destRef);
您可以使用Firebase CLI
Firebase CLI与npm 一起安装
sudo npm install -g firebase-tools
然后您可以执行命令来获取和设置数据:
firebase data:get / -f "<my-firebase-app>"
我有一个名为firebasedotfiles的个人项目,它创建bash函数来执行常见操作。其中之一是传输数据。设置bash函数后,可以执行以下命令:
transfer_to dev-firebase staging-firebase
您也可以阅读此博客文章以了解更多信息
Firebase CLI作为npm模块
Firebase CLI也可以用作节点模块。这意味着您可以调用常用的CLI方法,但可以作为函数调用。
这里有一个简单的数据:获取命令:
var client = require('firebase-tools');
client.data.get('/', { firebase: '<my-firebase-db>', output: 'output.json'})
.then(function(data) {
console.log(data);
process.exit(1);
})
.catch(function(error) {
console.log(error);
process.exit(2);
});
要传输数据,可以将data:get与data:set组合
function transfer(path, options) {
var fromDb = options.fromDb;
var toDb = options.toDb;
var output = options.output;
client.data.get(path, { firebase: fromDb, output: output })
.then(function(data) {
return client.data.set(path, output, { firebase: toDb, confirm: true });
})
.then(function(data) {
console.log('transferred!');
process.exit(1);
})
.catch(function(error) {
console.log(error);
process.exit(2);
});
}
transfer('/', { fromDb: '<from>', toDb: 'to', output: 'data.json' });
相关文章:
- Meteor:访问另一个集合,每个块中有一个id
- 另一个集合视图中的集合视图
- 如何使用Angular 2服务提供包含指向另一个资源的链接/ids的资源集合
- Mongo-Aggregate:如何与另一个集合中的字段进行比较
- Meteor - 将 mongodb 查询分配给变量并将其插入到另一个集合
- 基于 MongoDB 中另一个集合中的数据查询一个集合中的数据
- 流星 - 将数据从一个集合移动到另一个集合
- 如何在插入时引用另一个集合
- 我应该如何创建一个作用域到另一个模型的主干集合
- 主干:将模型从一个集合添加到另一个集合
- 用于将树分支从集合移动到另一个集合的Firebase API
- 在Meteor(MongoDB)中,按另一个集合中的值搜索一个集合
- MongoDB-插入到两个集合中,一个集合引用另一个作为子文档
- Meteor从数组返回值,以便在另一个集合中使用它
- Restangular:将元素从一个集合插入到具有不同路线的另一个集合
- 在backbone.js中将一个集合添加到另一个集合中
- 发送多个数组到骨干集合,渲染一个,保存另一个
- 在另一个集合中存储引用会创建对象,但不会创建字符串Meteor
- 如何将集合发送到另一个视图
- 当发布的游标基于另一个集合内容时,如何构建响应式发布