database = firebase.database();
var ref = database.ref('Users');
ref.orderByChild('state').equalTo("0").once('value', function(snapshot) {
var Users = snapshot.val();
i=0;
if (Object.keys(Users).length > 0){
getUser(Users);
} else {
console.log("No Users")
}
});
我正在做的是让节点js bot运行我的数据库并搜索state = 0的用户。如果state等于零,我运行另一个脚本,获取有关它们的一些信息,更新它们的条目,以及然后将状态更改为1。
我有一个相当大的数据库,所以如果我可以运行我的机器人的一些实例,那将是很棒的。但是,它不起作用,因为当机器人最初运行时,它们都会查看相同的条目并记住哪些条目具有状态= 0然后它们都重复彼此的工作。
我尝试将ref.orderByChild更改为使用“once”更改为“on”。这似乎不起作用,因为它看起来好像脚本总是在等待/侦听变化..并且从未真正完成一个循环。它不会继续下一个条目。
解决这类问题的最佳方法是:让多个机器人能够编辑firebase数据库而不重复彼此的工作?
答案 0 :(得分:0)
使用" master"查询并保存所有数据。脚本,然后让它分配整个事情,并将拆分数据卸载到其他脚本,接收他们的数据部分作为输入。