如何防止Google Cloud VM实例对Firebase数据库中的一个事件做出多重反应?

问题: doSomething()函数被调用两次(由每个正在运行的VM实例)。

我只能通过一个虚拟机实例来对每个事件做出反应?

Google云端平台上的Node.js脚本:

function listenForNotificationRequests() { var requests = ref.child('some_node'); requests.on('child_added', function(requestSnapshot) { var request = requestSnapshot.val(); doSomething( request.type, function() { requestSnapshot.ref.remove(); }); }, function(error) { console.error(error); }); }; 

@Frank的评论指出, firebase-queue解决了你的问题。

可以在多台计算机上初始化多个队列工作者,并且Firebase-Queue将确保一次只有一个工作人员正在处理单个队列任务。