从 Firestore 查询返回数据数组

时间:2021-01-06 17:55:29

标签: javascript reactjs asynchronous google-cloud-firestore

我想检索作为特定用户的朋友的所有用户的信息。要返回单个 json 数组,我首先将数据推送到一个数组,然后返回数据,但由于 firestore 查询的异步行为,看起来数据返回空。 任何人都可以帮助如何在将所有值推送到数据后返回数据。

export async function getUserFriendsDetails(userId) {
    var data = {
        results: []
    }
    getUser(userId).then((snapshot) => {
        snapshot.data().friends.forEach(friend => {
            getUserDetails(friend).then((result) => {
                data.results.push(result.data()) // data is getting pushed here
            })
        })
    })
    return data;  // data is empty array here
}

1 个答案:

答案 0 :(得分:1)

我们可以使用回调在填充整个数据后返回。

export async function getUserFriendsDetails(userId) {
    var data = {
        results: []
    }
    getUser(userId).then((snapshot) => {
        snapshot.data().friends.forEach(friend => {
            getUserDetails(friend).then((result) => {
                data.results.push(result.data()) // data is getting pushed here
            })
        },function(data){
          alert(data);// Entire data
          })
    })
    return data;  // data is empty array here
}

相关问题