Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取项目在实时数据库中的位置_Javascript_Firebase Realtime Database - Fatal编程技术网

Javascript 如何获取项目在实时数据库中的位置

Javascript 如何获取项目在实时数据库中的位置,javascript,firebase-realtime-database,Javascript,Firebase Realtime Database,我想得到一个项目在数据库中的位置,以及数据 .ref("users") .orderByChild("email") .equalTo(myEmail) .once("value", snapshot => { console.log("Database Position", ???? ) } 快照中是否有一个值可用于指示数据库中的位置(通过电子邮件订购后)?我不想在客户端执行此操作,因为我有超过1k个用户Firebase实时数据库不会跟踪节点在其父节点中的位置,也不会在查询结果

我想得到一个项目在数据库中的位置,以及数据

.ref("users")
.orderByChild("email")
.equalTo(myEmail)
.once("value", snapshot => {
    console.log("Database Position", ???? )
}

快照中是否有一个值可用于指示数据库中的位置(通过电子邮件订购后)?我不想在客户端执行此操作,因为我有超过1k个用户

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;
        }
    });
}
由于您评论说您正在尝试创建排行榜,请参阅:


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;
        }
    });
}
由于您评论说您正在尝试创建排行榜,请参阅:


回答下面的问题。因为这可能确实不适合你,你可能想解释一下你在这里想要完成什么。就目前而言,你的问题读起来像是一个问题,如果我们知道实际目标,我们可能会想出一个替代方法。回答如下。因为这可能确实不适合你,你可能想解释一下你在这里想要完成什么。就目前情况而言,你的问题读起来像是一个问题,如果我们知道实际目标,我们可能会想出一个替代方法。谢谢弗兰克,这是不幸的。我有一个超过1k的用户列表,这些用户按“分数”排序。我希望我能利用数据库中的职位作为他们的排名。我想最好的方法是每天运行一次firebase函数来更新排名字段。我添加了一些关于排行榜和排名的先前答案的链接。谢谢Frank,这很不幸。我有一个超过1k的用户列表,这些用户按“分数”排序。我希望我能利用数据库中的职位作为他们的排名。我想最好的方法是每天运行一次firebase函数来更新排名字段。