Поиск в базе данных Firebase Realtime возвращает родителя - PullRequest
0 голосов
/ 29 июня 2018

Я создал такие данные,

device
    [random ID]
         id: "435345"
         token: "homer"
    [random ID]
         id: "594935"
         token: "marge"

Я использовал следующий код, чтобы найти «id» по «token».

const db = admin.database().ref("device");
db.orderByChild("token").equalTo(token).once("value",
    function(data){
        console.log("key= " + data.key + " ,value= " + data.val());
     }
)

Если token это "marge", я бы ожидал, что data.val() будет "594935". Но когда я запустил код, результат был такой,

info: key= device ,value= [object Object]

Я думаю, data - это не второй дочерний элемент «устройства», а сам узел «устройства». Что не так с кодом?

1 Ответ

0 голосов
/ 30 июня 2018

Вы должны сделать цикл для доступа к дочерним значениям списка

Даже если для запроса есть только одно совпадение, снимок остается списком; он просто содержит один элемент. Чтобы получить доступ к элементу, вам нужно перебрать результат

Подробнее об этом можно прочитать здесь

Следовательно, ваш код должен выглядеть примерно так:

const db = admin.database().ref("device");
db.orderByChild("token").equalTo(token).once("value", function(data_snapshot) {

data_snapshot.forEach(function(data_child) {

console.log(data_child.val());

});

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