通过 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
上运行,因此查询考虑的节点是 email
、l1
、points
和 uid
。对于其中的每一个,它都会寻找一个子 属性 l1
并将该值与您指定的值进行比较。但是这四个节点中的 none 有 一个 l1
属性.
如果您希望能够在 /user/$uid
的子节点中搜索它们的 l1
属性,您需要在 JSON 中添加一个额外的级别,即通常通过调用 push()
生成,如 adding nodes to a list 上的文档所示。所以你的 JSON 会变成
user: {
"$uid": {
"$pushid": { // new
email: "...",
l1: "...",
points: ...,
uid: "...",
}
}
}
使用该结构,您的查询将有效。
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
上运行,因此查询考虑的节点是 email
、l1
、points
和 uid
。对于其中的每一个,它都会寻找一个子 属性 l1
并将该值与您指定的值进行比较。但是这四个节点中的 none 有 一个 l1
属性.
如果您希望能够在 /user/$uid
的子节点中搜索它们的 l1
属性,您需要在 JSON 中添加一个额外的级别,即通常通过调用 push()
生成,如 adding nodes to a list 上的文档所示。所以你的 JSON 会变成
user: {
"$uid": {
"$pushid": { // new
email: "...",
l1: "...",
points: ...,
uid: "...",
}
}
}
使用该结构,您的查询将有效。