将实时数据库节点更新为空而不是删除它

问题描述 投票:0回答:1

我正在使用实时数据库,并且想清空节点而不是完全删除它,即使它没有子节点。无论我使用带有 null 的 update() 还是直接删除(),或者甚至只是手动删除节点的所有子节点,我都希望头节点仍然存在,并且之后为空。 示例:

--headNode
  --key1
    --properties of object1
  --key2
    --properties of object2

如果我只删除 key2,那么 headNode 和 key1 将保留。但是,如果我尝试删除或更新(空)键 1,那么我的整个 headNode 也会自动删除,因为它现在是空的。我希望它能够独立存在。

我尝试用 null 删除或更新最后一个剩余的子对象,但这最终也会删除整个头节点,因为它现在完全是空的。我知道可能有一个空节点,但是有没有办法删除其所有子节点而不会使头节点自行消失?

firebase-realtime-database
1个回答
0
投票

Firebase 实时数据库中无法存在没有值的节点。一旦写入

null
值,数据库就会删除该节点 - 以及因该操作而变空的任何父节点。

您的用例的常见解决方法是存储一个代码随后识别的虚拟值,类似于您在允许的情况下处理

null
的方式。

© www.soinside.com 2019 - 2024. All rights reserved.