android - 查询包含子集合的文档
问题描述
有没有办法在单个查询中查询包含特定子集合(或任何子集合)的所有文档?
这个答案:是否可以检查集合或子集合是否存在?建议使用文档长度。是否可以在单个查询中进行此检查?
理想情况下,这样的事情是可能的:
db.collection("stuff")
.whereEqualTo("fu", true)
.containing("subcollection");
上下文:我正在使用 FirestoreRecyclerAdapter 使用此查询填充 RecyclerView。这就是为什么我不能在本地进行过滤。我知道在文档中引入指标字段可以解决问题,但最好避免这种情况。
解决方案
我认为这样的查询是不可能的。
我能想到的最好的方法是在父文档中保留一个字段,当您向子集合添加内容时该字段会标记。
db.collection("stuff")
.whereEqualTo("fu", true)
.whereEqualTo("somethingAddedToSubcollection", true);
诚然并不理想,因为现在每次写入子集合都需要对文档本身进行第二次写入,所以我希望其他人知道更好的解决方案。
推荐阅读
- sql - 在sql过程中使用“EXEC xp_cmdshell net use”时如何处理异常
- python - 在python中绘制一组大数据并计算斜率的有效方法
- django - 为 django 模型设置条件唯一性的简单方法
- html - 如何在自定义输入文本中获取下拉列表
- web - 您可以从网页中获取哪些数据
- html - 表中的引导输入和选择稍微偏离
- python - 向量减法 python 3 不使用内置函数 sum、min、max 和 zip
- c++ - Windows 终端服务器 2012 R2 + 自定义凭据提供程序
- angularjs - 如何在 angularjs 指令的数据绑定值中添加双引号?
- javascript - 将 javascript 导入加载到 React 应用程序中