Jay*_*abu 5 android firebase google-cloud-firestore
在使用Cloud Firestore 时,我在将数据添加到 Cloud Firestore文档中阅读了此声明:
重要提示:与 Firebase 实时数据库中的“推送 ID”不同,Cloud Firestore 自动生成的 ID 不提供任何自动排序。如果您希望能够按创建日期对文档进行排序,您应该将时间戳存储为文档中的一个字段。
所以,我设计了我的数据库,因为它包含timestamp所有文档中的字段。
但在那之后,我在最佳实践文档中阅读了这些声明:
请注意,具有单调递增值的索引字段(例如时间戳)可能会导致热点,从而影响具有高读取和写入速率的应用程序的延迟。
避免高读取或写入速率以按字典顺序关闭文档,否则您的应用程序将遇到争用错误。此问题称为热点,如果您的应用程序执行以下任一操作,则它可能会遇到热点:
- 以非常高的速率创建具有单调递增字段(如时间戳)的新文档。
所以我现在很困惑。我正在开发一个安卓应用程序。我可以timestamp用作字段吗?如果我的应用程序有很多用户,它会产生任何问题吗?是的,我必须按创建日期订购文档。
这两个文档之间存在巨大差异。
第一个是指 Cloud Firestore 自动生成的 ID 不像 Firebase 实时数据库推送 ID 那样具有时间组件。这就是它无法提供任何自动排序的原因。因此,它与时间戳作为对象的属性这一事实无关。
第二个是指不建议使用单调递增的值,例如时间戳作为文档的ID。因此请记住,只有在使用此类时间戳作为数据库中的键时才会出现这种情况,只有在这种情况下才会导致影响延迟的热点。
由于您在每个文档中使用时间戳作为字段,因此无需担心。如果您已将该时间戳用作 Coud Firestore 中的文档 ID 或 Firebase 实时数据库中的节点键,则适用上述规则。
| 归档时间: |
|
| 查看次数: |
664 次 |
| 最近记录: |