javascript - 从 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
}
解决方案
一旦填充了整个数据,我们可以使用回调返回。
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
}
推荐阅读
- java - 如何打开新标签
- angular-ui-bootstrap - 选择与来自 Rest 客户端的动态数据一起使用时不显示的选项。为 UI 使用 Angular 6 和 Bootstrap
- sql - Redshift:与其他用户打开 2 种聊天类型的用户计数
- php - 函数 file_get_contents() 返回 false
- d3.js - D3线不显示
- mongodb - mongofiles get_id 在 Windows 7 上无法从 cmd 工作
- angular - 如果子元素保存在 @ViewChild 变量中,Angular 父组件不会破坏子元素
- react-native - react-native 链接仅适用于一个项目(Android 或 iOS)
- vba - 合并两个宏 - 合并后,宏不起作用
- reactjs - 如何在 React.js 中使用多个 CSS 类?