首页 > 解决方案 > Geofirestore 从 react-native 中的地理集合中获取子集合

问题描述

我想通过 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 中保存不同用户的产品列表的方式?

标签: javascriptreact-nativegoogle-cloud-firestoregeofirestore

解决方案


推荐阅读