![](/img/trans.png)
[英]React Native AsyncStorage returns promise instead of value
[英]React native returns Promise instead of value Firestore
因此,我试图从Firestore basen上获取保存在我的用户集合中的ID数组(填充)的多个文档。 我首先获取ID,然后有一个map函数,该函数从食谱集合中查找每个文档并将其分配给变量数据。 问题在于,我不仅获得每个ID的结果,还获得每个ID的承诺。 我如何解决此问题以便仅获取数据?
export const yummedRecipesFetch = () => {
const { currentUser } = firebase.auth();
return (dispatch) => {
firebase.firestore().collection(`users`).doc(currentUser.uid)
.onSnapshot(function(doc) {
var data = doc.data().yummed.map(function (recipeId) {
return firebase.firestore().collection(`recipes`).doc(recipeId).get().then(function(doc) {
return { id: doc.id, ...doc.data()};
})
})
console.log(data)
dispatch({ type: YUMMED_RECIPES_FETCH_SUCCESS, payload: data })
});
};
};
使用以上Promise.all的建议
export const yummedRecipesFetch = () => {
const { currentUser } = firebase.auth();
return (dispatch) => {
firebase.firestore().collection(`users`).doc(currentUser.uid)
.onSnapshot(function(doc) {
var data = doc.data().yummed.map(function (recipeId) {
return firebase.firestore().collection(`recipes`).doc(recipeId).get().then(function(doc) {
return { id: doc.id, ...doc.data()};
})
})
Promise.all( data).then(function(values) {
dispatch({ type: YUMMED_RECIPES_FETCH_SUCCESS, payload: values })
})
});
};
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.