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的预测。相反,您应该将“重”字段放入另一个集合中的文档中,并仅在需要时查询这些字段
如果您想知道为什么,部分原因与客户端本地持久性层的工作方式有关。如果给定文档本地只存在某些字段,则缓存会变得更加复杂。简单地获取和存储整个文档要简单得多,因此毫无疑问文档是否在本地可用
为了数据建模的目的,最好将文档视为“原子单元”,无论是全部还是全部,都不能分解