【问题标题】:Return array of data from firestore query从 Firestore 查询返回数据数组
【发布时间】:2021-01-06 17:55:29
【问题描述】:

我想检索作为特定用户朋友的所有用户的信息。要返回单个 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
}

【问题讨论】:

    标签: javascript reactjs asynchronous google-cloud-firestore


    【解决方案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
    }

    【讨论】:

    • 它仍然返回一个空数组。
    • 写return语句代替alert()语句。
    • 谢谢,但我尝试仅从那里返回数据(写入警报的地方),但它仍然返回 null。我还有其他选择吗?
    猜你喜欢
    • 1970-01-01
    • 2018-11-08
    • 2022-12-22
    • 1970-01-01
    • 2021-03-26
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多