检测到孩子的值从false变为true

时间:2016-09-10 01:21:53

标签: javascript firebase firebase-realtime-database

如何检测firebase数据库中userStatus的{​​{1}}儿童的价值是否从false更改为true

以下是我尝试使用的代码,但它不起作用。据我所知,当userStatusfalse更改为true时,以下表达式不再为真,因此无法触发。

有人可以建议,我怎么能做到这一点?

usersRef.orderByChild("userStatus").equalTo(false).on("child_changed", function(snapshot) {
  var userDetails   =   snapshot.val();
  var firstname     =   userDetails.firstName;
  console.log("userDetails, firstname: "+firstname);
});

[编辑]

下面是我的firebase数据库结构,我只是在 child_changeduserStatus更改为{{1}时 }事件

<code>Firebase db structure</code>

1 个答案:

答案 0 :(得分:2)

一种解决方案是使用与userStatus false的用户匹配的查询,然后收听child_removed事件。当用户更改并且不再匹配该查询时,您将收到通知。也就是说,当userStatusfalse更改为true时,您会收到通知。

usersRef.orderByChild("userStatus")
  .equalTo(false)
  .on("child_removed", function (snapshot) {
    var userDetails = snapshot.val();
    var firstname   = userDetails.firstName;
    console.log("userDetails (status changed to true), firstname: " + firstname);
  });