使用具有相同ID的Firebase实时数据库和Firestore

使用具有相同ID的Firebase实时数据库和Firestore,firebase,firebase-realtime-database,google-cloud-firestore,Firebase,Firebase Realtime Database,Google Cloud Firestore,正如标题所示,我有一个用例,我将向firestore和实时数据库写入数据。我将实时数据库用于需要实时反馈给用户的操作,并使用firestore存储数据,这些数据不会真正改变,但可以在以后查询以进行更复杂的操作 由于我需要两个数据库,我希望在两个数据库中创建数据时使用相同的UID,以便于将来检索。我面临的问题是确定生成的哪个ID将满足其他服务 我的想法是,由于实时数据库推送ID基于时间戳,它可能会为Firestore创建热分区,因此,如果我在Firestore中使用相同的ID,随着数据增长,索引性

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

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

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


我想知道人们用来解决这个用例的解决方案是什么,我有什么选择。谢谢

如果需要对数据进行排序,那么只需将时间戳存储为字段,而不需要依赖实时数据库推送ID基于时间的排序顺序。您可以在这两个数据库中轻松地执行此操作。Firestore使唯一ID具有唯一性之外的任何意义的想法变得过时


如果您确保您的唯一ID像Firestore一样是随机的,那么您在索引或编写文档方面就不会有任何问题。

出于您在此处陈述的原因,我怀疑是否需要使用两个数据库。Firestore完全能够像实时数据库一样提供实时结果。同时使用两者似乎增加了不必要的复杂性和成本。