android - 如何从云 Firestore 中的两个不同集合中获取所有列表
解决方案
我想在一个查询中列出这两个集合的完整列表
不,实际上你不能那样做。Firestore 中的查询很浅,这意味着您只能从运行查询的集合中获取文档。无法在单个查询中从两个顶级集合中获取文档。Firestore 不支持一次性跨不同集合进行查询。
如果您的要求是只查询一次数据库以获取两个集合的内容,那么您应该考虑通过创建一个包含两个集合中的项目的单个集合来更改数据库架构:
Firestore-root
|
--- items (collection)
|
--- $itemId (document)
| |
| --- type: "purchase"
| |
| --- //Rest of the fields
|
--- $itemId (document)
|
--- type: "sale"
|
--- //Rest of the fields
这样,您可以一次获得所有物品。但是,如果您需要区分它们,那么您应该使用查询。例如,如果您只想获取所有待售商品,则可以使用以下查询:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance()
CollectionReference itemsRef = rootRef.collection("items")
Query qyeryItemsForSale = itemsRef.whereEqualTo("type", "sale")
推荐阅读
- javascript - 在 highcharts 中组合图表
- javascript - 我确实在 UI 上获得了对象属性
- swift - 在 URL 处获取文件并将它们添加到目录 - Swift
- firebase - 在 Ionic 上使用 google plus 进行身份验证
- javascript - React应用程序中src文件夹的Webpack别名?
- vbscript - 如何让VBS给自己权限,以后不问用户?
- javascript - wordpress header javascript - TypeError: document.getElementById(...) is null
- ssh - 如何通过 ssh 从 python 到服务器建立与 AWS rds 的连接?
- reactjs - 参考值未定义 ReactJs
- android - 在初始屏幕的图层列表中添加进度条