具有数据过滤功能的侦听查询

时间:2019-12-16 13:18:49

标签: javascript firebase firebase-realtime-database

我有这个结构

comments:
 - FG1MaPfTFsdgdsgsruL9Cgx5sY2
   + content
     + value: "My comment"
   + creator: "0U1MaPfTF2fwcgqWuruL9Cgx5sY2"
   + date_create: "2015-02-21T12:40:35Z"
   + users[]
     + CByXgSgB4khZ5LgugXGRdfK7CLk2
     + XakJ8zn711bUeSpCK1ss7Fsz7JX2
   + relations[]
     + HTyXgSgB4khZ5LgugXGRdfK7CLk2
     + CakJ8zn711bUeSpCK1ss7Fsz7JX2
   + settings[]
     + duration: 2

如何在应用程序中侦听适当的查询,以便当user UID出现在users[]中时,它将立即收到一条消息。

另一个过滤器将是duration中的时间

1 个答案:

答案 0 :(得分:1)

首先获取用户uid:

var user = firebase.auth().currentUser;
var uid;

if (user != null) {
  uid = user.uid;
  let database     = firebase.database();
  let userRef      = database.ref("users").orderByKey().equalTo(uid);
    userRef.on('value', ((snapshot) => {
    if(snapshot.exists()){
    console.log(snapshot.val());
      } 
   });
}

尝试上述操作,首先检索uid,然后添加对节点users的引用,然后使用orderByKey()uid上进行查询,然后使用{{1 }},您可以检查它是否存在于数据库中。