所以,基本上,我有一个简单的React应用程序连接到Firebase,它列出了firestore收藏的不同类型的食物。
示例:
- 我有几个类别。默认的是";所有";它显示了所有其他可用类别中最受欢迎的8道菜,这一部分很容易,但我希望用户能够点击其他类别并更新我的查询
Category实际上是一个NavLink,它在点击时更新位置,因此:
如果用户点击";Pizza";category的url看起来像这样localhost:3000/Pizza
如果他点击Salad,它是localhost:3000/Salad等
我有一个"墙";组件,它是一个部分,并显示来自firestore的那些项目。
我在此墙组件中的查询参考如下:const foodRef = db.collection("food").doc("all").collection("items");
但我想动态设置.doc,并在每次更新时进行查询,所以我将查询更改为这样的内容:
const location = useLocation();
const foodRef = db.collection("food").doc('${location.pathname}').collection("items");
当用户点击不同的卡(NavLink(时,url会更新,但查询不会。
我知道这是一个糟糕的解决方案,但实际上我不知道该怎么做
我读过react路由器中的递归路径,但我不知道它是否是我想要的
如果你知道如何处理,请告诉我。
感谢您抽出时间
Firestore不支持查询中的通配符或替换,查询对象是完全不可变的(不能更改(。您必须提前知道文档和集合的名称才能构建查询。如果要更改查询的某些部分,则每次都必须重新生成一个全新的查询对象,然后再次运行查询以获得新的结果集。