我想通过 geofirestore 提出请求来检索子集合,如下所示:
每个 PRODUCTS 的 id 对应于创建新产品的用户的 id(目前只有一个)。
这是我现在的代码:
import firestore from '@react-native-firebase/firestore';
import * as geofirestore from 'geofirestore';
const firestoreApp = firestore();
const GeoFirestore = geofirestore.initializeApp(firestoreApp);
const geocollection = GeoFirestore.collection('PRODUCTS');
const query = geocollection.limit(30).near({
center: new firestore.GeoPoint(coords.latitude, coords.longitude),
radius: 1000,
});
try {
query.onSnapshot((querySnapshot) => {
const productsQueried = querySnapshot.docs.reduce(
(result, documentSnapshot) => {
console.log(documentSnapshot);
if (documentSnapshot.id !== user.uid) {
result.push(documentSnapshot.data());
}
return result;
},
[]
);
setListOfProducts(productsQueried);
console.log(productsQueried);
setLoading(false);
});
} catch (error) {
console.log(error);
}
当然,我只能找到 geocollection,而无法访问里面的 'USER_PRODUCTS' 集合。 {存在:真,id:“OUJ6r3aF9nVfgtfkQRES7kpYCko1”,距离:0,数据:ƒ}
最终目标是检索每个亲密客户的产品列表,然后进行排序,以免检索到当前用户的产品列表。
我是否必须提出第二个请求(我可以一次完成吗?)或者我是否必须更改在 Firestore 中保存不同用户的产品列表的方式?