【问题标题】:Using both Firebase Realtime Database and Firestore with same ID使用具有相同 ID 的 Firebase 实时数据库和 Firestore
【发布时间】:2020-07-24 17:25:59
【问题描述】:

正如标题所暗示的,我有一个用例,我会将数据写入 Firestore 和实时数据库。我将实时数据库用于需要向用户提供实时反馈的操作,并使用 Firestore 存储不会真正更改但可以在以后查询以进行更复杂操作的数据。

由于我需要两个数据库,我想在两个数据库中创建数据时使用相同的 UID,以便将来轻松检索。我遇到的问题是确定哪个生成的 ID 将满足其他服务。

我的想法是,由于实时数据库推送 ID 基于时间戳,它可以为 Firestore 创建热分区,因此如果我在那里使用相同的 ID,将来随着数据增长的索引性能可能会受到影响。但是如果我在实时数据库中使用firestore生成的ID,我将不会以实时数据库创建推送数据的排序方式获得数据。

我想知道人们使用什么解决方案来解决这个用例以及我可以使用哪些选项。谢谢!

【问题讨论】:

  • 出于您在此处所述的原因,我质疑是否需要使用两个数据库。 Firestore 完全能够像实时数据库一样提供实时结果。将它们一起使用似乎会不必要地增加复杂性和成本。

标签: firebase firebase-realtime-database google-cloud-firestore


【解决方案1】:

如果您需要对数据进行排序,则只需将时间戳存储为字段,而不是依赖于实时数据库推送 ID 基于时间的排序顺序。您可以在两个数据库中轻松完成此操作。 Firestore 摒弃了唯一 ID 具有任何意义的想法,而不仅仅是唯一。

如果您确保您的唯一 ID 像 Firestore 一样是真正随机的,那么您在索引或编写文档时不会遇到任何问题。

【讨论】:

    猜你喜欢
    • 2018-03-19
    • 2021-01-19
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 2021-10-19
    • 2018-03-14
    相关资源
    最近更新 更多