>

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()')

  • 답변 # 1

    와이즈 비즈 확인  변하기 쉬운. 배열입니까?

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

  • 답변 # 2

    list
    
    

    /* 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)

관련 자료

  • 이전 swift - nodenamelast ()를 풀 때 nil 찾기
  • 다음 python - 이 코인 플리퍼 코드가 항상 HEADS를 뒤집는 이유는 무엇입니까?