当前位置: 首页 > 知识库问答 >
问题:

在云Firestore中使用Firebase实时数据库节点密钥作为文档ID

蒋啸
2023-03-14

我正在将我的实时数据库迁移到Cloud FiRecovery。理想情况下,我需要保留使用ush()生成的相同实时数据库节点密钥,并将其用作FiRecovery中的文档ID,但这样做安全吗?

我已经阅读了https://firebase.google.com/docs/firestore/best-practices的信息,我仍然不确定这是否安全。我知道Cloud FiRecovery中自动生成的文档ID与实时数据库中自动生成的文档ID格式不同。

使用实时数据库生成的密钥(例如:-M\u NHw525\u IxMqiGPUvd)作为云Firestore中的文档ID,我是否可能遇到问题?

非常感谢您的帮助,谢谢。

共有1个答案

房学
2023-03-14

FiRecovery对其写入过程中的热点很敏感,这意味着当写入在地址空间中随机分布时,写入吞吐量最好。换句话说:如果正在写入的文档的ID和正在写入索引的值是随机分布的。

Firebase实时数据库推送ID以编码的时间戳开始,因此它们绝对不是随机分布的。它们(按设计)在很大程度上是连续的:对push()的后续调用通常会导致键彼此相邻。这正是他们在实时数据库中的设计目的,但它不能满足Firestore中最大化写入吞吐量所需的随机分布的要求。

在使用现有的推送键进行FiRecovery写入时是否会遇到问题实际上取决于实现。例如,在数据迁移期间,当写入不是随机分布时,您希望准备好(更快地)限制写入。希望上述内容可以帮助您知道在执行数据迁移时要注意什么。

 类似资料:
  • 我正在为具有许多嵌套行的json数据库寻找将Firebase实时数据库数据迁移到云Firestore的最佳方法。示例: 我没有找到任何可以帮助我的东西。我需要迁移的是Cloud FireStore的新离线功能。我正在使用Ionic3(角度5)

  • 每当我使用Admin SDK从Node运行Firebase实时数据库代码时,进程都会挂起。例如,我可能有一个节点应用程序: 我使用运行。用户将设置为不活动,这很好。但是节点进程将挂起。我必须按ctrl-c才能返回提示。 我应该使用Firebase在节点应用程序中关闭连接或执行其他操作吗?对于Firebase函数,我必须返回从上述调用生成的promise。那么,Firebase函数是否自动处理关闭我

  • 我需要将数据从Firebase实时数据库切换到Firestore DB。我该怎么做? 视频主要关注实时db,但我认为由于我没有激活实时db,它会转到Firestore。但我让它工作的唯一方法是启用实时db。所以我可以在Firebase中插入和读取数据,但我需要它在Firestore中。 任何帮助都是非常感激的。

  • 假设我有一个带有一些可选属性的数据模型。例如,它可以是具有“firstname”、“lastname”和可选的“网站”属性的用户对象。 谢了。

  • 在实时数据库中未创建根节点。所有依赖项均已实施,firebase已连接到该项目。这是代码。 public void onComplete(@非空任务任务){

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