我需要获取Firestore中集合的所有文档的数据。
但是在我的forEach中,我只得到第一个文档,而我有两个。
他两次打印控制台,但是在我的setPoints状态下,他只放置了第一个
我做错了什么?
const db = firestore();
await db
.collection('Providers')
.get()
.then(snapshot => {
if (snapshot.empty) {
console.log('nao tem');
return;
}
snapshot.docs.forEach(item => {
console.log('item', item.data());
setPoints([
...points,
{
id: item.id,
latitude: item.data().address.latitude,
longitude: item.data().address.longitude,
},
]);
});
答案 0 :(得分:0)
我没有立即看到您的代码出了什么问题。但这似乎更加简洁和惯用,因此值得一试:
const db = firestore();
await db
.collection('Providers')
.get()
.then(snapshot => {
if (snapshot.empty) {
return;
}
let points = snapshot.docs.map(item => {
return {
id: item.id,
latitude: item.data().address.latitude,
longitude: item.data().address.longitude,
},
]);
});
setPoints(points);
})