我们可以将数据插入 Firebase 实时数据库吗?

Posted

技术标签:

【中文标题】我们可以将数据插入 Firebase 实时数据库吗?【英文标题】:Can we insert a data into Firebase realtime Database? 【发布时间】:2019-02-23 02:43:11 【问题描述】:

我的 Firebase 实时数据库的一个子节点变得很大(大约 20 GB),我需要清除它并使用 Python Admin SDK 将上个月从备份中提取的数据插入到 Firebase 实时数据库中。

在文档中,我看到以下选项:

set - 将数据写入或替换到定义的路径,例如消息/用户/

update - 更新定义路径的一些键而不替换所有数据

push - 添加到数据库中的数据列表。每次将新节点推送到列表时,您的数据库都会生成一个唯一键,例如消息/用户//

事务 - 在处理可能被并发更新破坏的复杂数据时使用事务

但是,我想从 firebase 备份中添加/插入数据。我必须插入,因为该应用程序在生产中使用,我无法承受数据覆盖。

是否有任何方法可以插入/添加数据而不覆盖数据?

非常感谢任何帮助/支持。

【问题讨论】:

我在下面写了一个关于基本可能性的快速答案。如果不了解您要恢复的实际数据结构以及您要保留的数据,就很难给出更具体的建议。 【参考方案1】:

如果不读取每个位置的当前值,则无法在 Firebase 实时数据库中执行此操作。

唯一允许您根据现有值更新数据的操作是transaction。 Firebase 事务会为您提供某个位置的(可能的)当前值,然后您返回新值应为的值。

但是,如果您要恢复的数据(大部分)与您在数据库中的数据相同,您或许可以使用具有足够深路径的 update() 调用。

【讨论】:

以上是关于我们可以将数据插入 Firebase 实时数据库吗?的主要内容,如果未能解决你的问题,请参考以下文章

我可以在没有实时数据库的情况下访问 Firebase 存储吗

当请求中的 nodeId 与数据库中的 nodeId 匹配时,我可以将 Firebase 实时数据库规则设置为只读吗

如何将 Firebase 实时数据库导出为 CSV?

插入 Firebase 实时数据库会覆盖数据而不是追加,如何让它追加而不是在 js 中覆盖?

Firebase - 可以在多个实时数据库之间共享分片数据吗

数据未插入 Firebase 实时数据库抛出 Android