我正在使用实时数据库,并且想清空节点而不是完全删除它,即使它没有子节点。无论我使用带有 null 的 update() 还是直接删除(),或者甚至只是手动删除节点的所有子节点,我都希望头节点仍然存在,并且之后为空。 示例:
--headNode
--key1
--properties of object1
--key2
--properties of object2
如果我只删除 key2,那么 headNode 和 key1 将保留。但是,如果我尝试删除或更新(空)键 1,那么我的整个 headNode 也会自动删除,因为它现在是空的。我希望它能够独立存在。
我尝试用 null 删除或更新最后一个剩余的子对象,但这最终也会删除整个头节点,因为它现在完全是空的。我知道可能有一个空节点,但是有没有办法删除其所有子节点而不会使头节点自行消失?
Firebase 实时数据库中无法存在没有值的节点。一旦写入
null
值,数据库就会删除该节点 - 以及因该操作而变空的任何父节点。
您的用例的常见解决方法是存储一个代码随后识别的虚拟值,类似于您在允许的情况下处理
null
的方式。