Как получить позицию элемента в базе данных в реальном времени - PullRequest
0 голосов
/ 24 марта 2019

Я хочу получить позицию элемента в базе данных вместе с данными.

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

Есть ли в снимке значение, которое я мог бы использовать, которое указывает положение в базе данных (послезаказ по электронной почте)?Я не хочу делать это на стороне клиента, так как у меня> 1k пользователей

1 Ответ

1 голос
/ 24 марта 2019

База данных Firebase Realtime не отслеживает положение узлов в их родителях и не возвращает такую ​​позицию в результатах запроса.Это означает, что единственный способ определить положение дочернего элемента в наборе дочерних узлов - это получить все дочерние узлы, прежде чем тот, который вы ищете.

.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;
        }
    });
}

Поскольку вы прокомментировали, что выпытаясь создать таблицу лидеров, см .:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...