реактивная базовая база данных получает массив ключей, используя async / await - PullRequest
0 голосов
/ 08 сентября 2018

Я хочу получить ключи дочерней записи указанной записи, используя async/await, но она, похоже, не работает, я продолжаю получать необработанное отклонение обещания. Я пытаюсь перебрать снимок и получить ключ каждого ребенка и сохранить их в массиве

Вот что я пробовал:

await firebase.database().ref('User-Message/' + this.state.user.id).once('value', async (snapshot) => {
  await snapshot.forEach(user => {
    this.list.push(user.key)
  })
  return key;
})

Я тоже пробовал так:

let db = await firebase.database().ref('User-Message').child(this.state.user.id);

let response = await db.once('value');

let users = await response.forEach(user => {
  console.log(user.key);
  return user.key;
})

Как получить массив ключей, используя async/await?

вот ошибка, которую я продолжаю получать

Possible Unhandled Rejection (id: 0): TypeError: undefined is not a function (evaluating '_this.list.push()')

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

/* let users = await response.forEach(user => {
  console.log(user.key);
  return user.key;
})
// YOUR CODE
*/


//you can do in this way

response =[
  {key:123, name:"Overflow"},
  {key:456, name:"Stack"},
]
let userKeys = response.map(user => user.key)
console.log("userKeys", userKeys)
0 голосов
/ 08 сентября 2018

Проверьте переменную list. это массив?

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

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