Firebase 我可以在Firestore中将现有字段作为分片时间戳重用吗?

Firebase 我可以在Firestore中将现有字段作为分片时间戳重用吗?,firebase,indexing,google-cloud-firestore,Firebase,Indexing,Google Cloud Firestore,我正在寻找一种解决方案,以解决Firestore对顺序索引字段的限制,这意味着以下内容 “顺序索引字段”是指 包含单调递增或递减的索引字段。在里面 在许多情况下,这意味着一个时间戳字段,但任何一个字段都是单调的 增加或减少字段值可触发的写入限制 每秒写入500次 根据解决方案,我可以在我的集合中添加一个shard字段,该字段将包含随机值,并创建一个带有时间戳的复合索引。我正试图通过文档中的现有字段实现这一点 我的文档包含以下字段: { users: string[], created

我正在寻找一种解决方案,以解决Firestore对顺序索引字段的限制,这意味着以下内容

“顺序索引字段”是指 包含单调递增或递减的索引字段。在里面 在许多情况下,这意味着一个时间戳字段,但任何一个字段都是单调的 增加或减少字段值可触发的写入限制 每秒写入500次

根据解决方案,我可以在我的集合中添加一个
shard
字段,该字段将包含随机值,并创建一个带有时间戳的复合索引。我正试图通过
文档中的现有字段实现这一点

我的文档包含以下字段:

{
   users: string[],
   createdDate: Firebase Timestamp
   ....
}

我已经创建了一个复合索引:
users数组createdDate降序
。此外,我还为字段字段创建了来自
自动索引设置的豁免。
users
字段将包含firebase自动生成的ID列表,因此肯定是随机的。现在我不确定字段
用户
是否将执行字段
碎片
形成示例文档的工作。通过这种方式,我们可以避免添加新字段,并且仍然可以提高写入速率。有人能帮我一下吗?

虽然我没有具体的经验表明你正在尝试做的事情肯定会或不会按照你期望的方式工作,但我认为它是有效的,基于文档中的事实(强调我的):

在时间戳字段旁边添加碎片字段。对碎片字段使用1..n不同的值。这将集合的写入限制提高到500*n,但必须聚合n个查询

如果每个
用户
数组包含不同且基本上随机的用户ID,则数组字段值将被视为“不同”(因为只有当两个数组的元素彼此相等时,两个数组才相等),因此适合分片