通过 javascript 检索子值并使用 firebase 进行比较

Retrieve an child value and compare using firebase by javascript

    const uid = firebase.auth().currentUser.uid;

var query = firebase.database().ref("/user/").child(user.uid).orderByChild("l1").equalTo("bought ")
     query.on("value", function(snapshot) {
         var lg1=document.getElementById("lg1");
    var lg2=document.getElementById("lg2");
    var blg=document.getElementById("blg");
    lg2.style.display=" none";
    lg1.style.display="block"; 
    blg.style.display="block";
         
     });

我正在比较 firebase 实时数据库中的子数据并使用快照功能禁用启用显示但它不起作用我尝试并研究了很多但我找不到完美的解决方案。

关于如何继续上述代码的任何想法?

这是我的 firebase 实时数据库的截图

Firebase 查询在您查询的路径下的直接子节点列表上工作。

由于您的查询在 /user/$uid 上运行,因此查询考虑的节点是 emaill1pointsuid。对于其中的每一个,它都会寻找一个子 属性 l1 并将该值与您指定的值进行比较。但是这四个节点中的 none 一个 l1 属性.

如果您希望能够在 /user/$uid 的子节点中搜索它们的 l1 属性,您需要在 JSON 中添加一个额外的级别,即通常通过调用 push() 生成,如 adding nodes to a list 上的文档所示。所以你的 JSON 会变成

user: {
  "$uid": {
    "$pushid": { //  new
      email: "...",
      l1: "...",
      points: ...,
      uid: "...",
    }
  }
}

使用该结构,您的查询将有效。