如何在一个firebase数据库上运行多个机器人?

时间:2017-05-02 19:34:28

标签: javascript node.js firebase firebase-realtime-database

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数据库而不重复彼此的工作?

1 个答案:

答案 0 :(得分:0)

使用" master"查询并保存所有数据。脚本,然后让它分配整个事情,并将拆分数据卸载到其他脚本,接收他们的数据部分作为输入。