Получение пустого снимка при чтении базы данных Firebase в Javascript? - PullRequest
0 голосов
/ 06 декабря 2018

У меня следующая структура базы данных:

enter image description here

Я пытаюсь получить список значений под регистрацией, чтобы затем выполнить уведомление FCM длясписок токенов.Но вывод на консоль пуст, хотя под дочерним узлом есть токен.Я что-то здесь упускаю?

Вывод на консоль:

registrationTokens [ '0' ]

Часть моего кода функции JS ниже:

return admin.database().ref('/fcmtokens/' + toId + '/registrationTokens').once('value').then((userTok) => {

    const registrationTokens = Object.keys(userTok.val());

    console.log('registrationTokens', registrationTokens);
});

1 Ответ

0 голосов
/ 06 декабря 2018

Ваш вывод на консоль точно такой, как я ожидал.Вы прочитали следующие дочерние элементы из базы данных:

0: 'c4P...'

Затем вы запросили ключи этого объекта для печати, как это возвращает Object.keys () .Обратите внимание, что этот ключ пара ключ / значение: ключ равен 0, а значение равно «c4P ...».Это означает, что следующий вызов:

Object.keys(userTok.val());

Собирается вернуть массив ключей дочерних элементов.Поскольку есть один дочерний элемент с ключом 0, вы получаете этот массив:

[ '0' ]

Итак, я бы сказал, что ваша функция работает именно так, как вы ее кодировали.Если вы хотите вместо этого использовать значения токенов, попробуйте следующее:

Если вы хотите вместо этого использовать токены для каждого ключа, возможно, вам следует использовать Object.values ​​() вместо:

Object.values(userTok.val());

Я ожидаю, что он вернет массив всех значений, связанных с этими ключами.

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