firebase - 我们可以将数据插入 Firebase 实时数据库吗?
问题描述
我的 Firebase 实时数据库的一个子节点变得很大(大约 20 GB),我需要清除它并使用 Python Admin SDK 将上个月从备份中提取的数据插入到 Firebase 实时数据库中。
在文档中,我看到以下选项:
set - 将数据写入或替换到定义的路径,例如消息/用户/
更新 - 更新定义路径的一些键而不替换所有数据
push - 添加到数据库中的数据列表。每次将新节点推送到列表时,您的数据库都会生成一个唯一键,例如消息/用户//
事务 - 在处理可能被并发更新破坏的复杂数据时使用事务
但是,我想从 firebase 备份中添加/插入数据。我必须插入,因为该应用程序用于生产,我无法承受数据的覆盖。
是否有任何方法可用于插入/添加数据而不覆盖数据?
非常感谢任何帮助/支持。
解决方案
如果不读取每个位置的当前值,则无法在 Firebase 实时数据库中执行此操作。
唯一允许您根据现有值更新数据的操作是transaction
. Firebase 事务会为您提供某个位置的(可能的)当前值,然后您返回新值应为的值。
但是,如果您要恢复的数据(大部分)与您在数据库中的数据相同,您也许可以使用update()
具有足够深路径的调用。
推荐阅读
- java - 如何摆脱在 Ubuntu 中安装 SikuliX API 所需的 OpenCV
- docker - Hyperledger Fabric - 多主机网络 - Docker Swarm
- reactjs - 部署 React 项目后的空白页面
- java - 如果我真的不需要引用的数据,我应该懒惰地定义一个 JPA ManyToOne,还是只在我的实体中映射原始 id?
- docker - hcsshim::System::CreateProcess 期间遇到错误:Windows 系统调用失败:系统找不到指定的文件。(0x2)
- javascript - 找不到模块 '../../images/Logo.png'.ts(2307) 红色错误仍在显示
- r - 使用另一列值创建新列
- delve - 如何运行直到深入研究中的某行?
- c++ - 在 C++ 中使用数据库检查的登录循环
- azure - CLI cmd 何时返回