[英]How to get document from a collection based on a field with firestore?
我正在使用 Firestore 和 React,我有以下情况。
我有 2 个集合:订单和用户。
每个订单都有一个名为userId的字段,基于该字段,我必须检索users 集合中的用户信息。
正如我所见,我有 2 个承诺:一个是获取订单,然后使用 for 循环,获取 userId 并再次获取用户信息。
所以我必须结合 2 个对象。
在订单对象中,我还需要用户详细信息
我试过这个,但它不起作用。
useEffect(() => {
firestore()
.collection(`orders`)
.get()
.then(result => {
let data = result.docs.map(function(p) {
return firestore()
.collection(`users`)
.doc(p.data().orderId)
.get()
.then(function(user) {
return {id: user.id, user.data()};
});
});
Promise.all(data).then(function(values) {
console.log(values);
});
});
}, []);
我们没有关于它为什么不工作的任何信息......是否有任何错误或它只是没有显示任何内容。
无论如何,我在我的测试 Firestore 中创建了相同的结构,并直接在 nodejs 中使用了您的代码(所有在 useEffect 中),但只发现了一个错误。 最后返回的是SyntaxError: Unexpected token .
.
我已将其更正为:
return {id: user.id, data: user.data()};
现在代码在控制台日志中返回值。 这可能是原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.