Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 我可以使用Firestore查询文档并从querySnapshot响应中筛选一些文档字段吗?_Firebase_Google Cloud Firestore - Fatal编程技术网

Firebase 我可以使用Firestore查询文档并从querySnapshot响应中筛选一些文档字段吗?

Firebase 我可以使用Firestore查询文档并从querySnapshot响应中筛选一些文档字段吗?,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,假设我有一组文档: 收藏: “产品” 在这个集合中,我有文档,每个文档都有一个很重的字段,我希望在发送给客户之前对其进行过滤 文档产品1: { id: 'someUniqueKey', title: 'This is the title', price: 35.00, heavyField: [ 'longStringxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'longStringxxxxxxxxxxxxxxxxxxxxxxx

假设我有一组文档:

收藏:
“产品”

在这个集合中,我有文档,每个文档都有一个很重的字段,我希望在发送给客户之前对其进行过滤

文档
产品1

{
  id: 'someUniqueKey',
  title: 'This is the title',
  price: 35.00,
  heavyField: [
    'longStringxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    'longStringxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    'longStringxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    'longStringxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    'longStringxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    'longStringxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
}
我是否可以查询
产品
集合中的那些文档,并将此特定的
重字段
保留在我的回答之外

我希望能够得到过滤掉其中一个字段的文档。也许可以选择我想在我的客户机上接收的字段


这可能吗?或者在这种情况下,最好将我的数据结构不同,并将
重字段
保留在不同的集合中?

在SQL中,这在查询中称为“”。Cloud Firestore不支持来自web和移动客户端SDK的预测。相反,您应该将“重”字段放入另一个集合中的文档中,并仅在需要时查询这些字段

如果您想知道为什么,部分原因与客户端本地持久性层的工作方式有关。如果给定文档本地只存在某些字段,则缓存会变得更加复杂。简单地获取和存储整个文档要简单得多,因此毫无疑问文档是否在本地可用

为了数据建模的目的,最好将文档视为“原子单元”,无论是全部还是全部,都不能分解