我想获取项目在数据库中的位置以及数据。
.ref("users")
.orderByChild("email")
.equalTo(myEmail)
.once("value", snapshot => {
console.log("Database Position", ???? )
}
快照中是否可以使用一个值指示数据库中的位置(通过电子邮件订购后)?我不想在客户端执行此操作,因为我有超过1000个用户
答案 0 :(得分:1)
Firebase实时数据库不会跟踪节点在其父节点中的位置,也不会在查询结果中返回此类位置。这意味着确定一个子节点在一组子节点中的位置的唯一方法是,在要查找的子节点之前检索所有子节点。
.ref("users")
.orderByChild("email")
.endAt(myEmail)
.once("value", snapshot => {
var index = 0;
snapshot.forEach(function(childNode) {
if (childNode.child("email").val() === myEmail) {
console.log("Database Position", index);
}
else {
index = index + 1;
}
});
}
由于您评论您正在尝试创建排行榜,请参阅: