首页 > 解决方案 > 从 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
}

标签: javascriptreactjsasynchronousgoogle-cloud-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
            })
        },function(data){
          alert(data);// Entire data
          })
    })
    return data;  // data is empty array here
}


推荐阅读