我的Firebase实时数据库的一个子节点变得很大(大约20 GB),我需要清除它,然后使用Python Admin SDK将上个月从备份中提取的数据插入到Firebase实时数据库中。
在文档中,我看到以下选项:
set-将数据写入或替换到已定义的路径,例如消息/用户/
更新-在不替换所有数据的情况下更新已定义路径的某些键
push-添加到数据库中的数据列表。每次将新节点推送到列表上时,数据库都会生成一个唯一密钥,例如messages / users //
事务-处理可能被并发更新破坏的复杂数据时,请使用事务
但是,我想从Firebase备份中添加/插入数据。我必须插入,因为该应用程序已用于生产环境,而且我无法承担数据的覆盖。
有没有可用的方法来插入/添加数据而不覆盖数据?
非常感谢您的帮助/支持。
答案 0 :(得分:1)
如果不读取每个位置的当前值,则无法在Firebase Realtime数据库中执行此操作。
唯一允许您根据数据的现有值更新数据的操作是transaction
。 Firebase交易会在某个位置为您提供(可能)当前值,然后您返回新值应变为的值。
但是,如果要还原的数据(在很大程度上)与数据库中的数据相同,则可以使用具有足够深路径的update()
调用。