如何获取此 DatabaseReference 自动生成 ID 以从客户端删除整个 DatabaseReference

how to get this DatabaseReference auto generate ID to remove whole DatabaseReference from client side

假设,我想删除名为-MNl6bPhPg6BNnM9NKEy 的整个集合/ DatabaseReference,目前据我了解,方法是:

final roomId = databaseReference.child('/message/$room').push();
print($roomId);

但是我得到了一个 'DatabaseReference' 的实例,所以你能不能先告诉我如何自己设置这个 DatabaseReference 而不是自动设置。以及如何删除此 DatabaseReference?

非常感谢!

为了删除节点,您需要知道该节点的完整路径。然后,您可以为该路径创建一个 DatabaseReference,并在该引用上调用 remove()

.push() 生成一个新的唯一引用,因此 roomId 将始终指向 non-existing 节点。

所以在你的情况下是:

final roomRef = databaseReference.child('/message/-MNl6bPhPg6BNnM9NKEy');
roomRef.remove();

通常您应该已经知道要删除的房间的密钥,因为您可能将数据从那里加载到您的应用程序中。但是,如果您不知道密钥,但 知道唯一标识节点的其他内容,则可以 use a query 找到该节点。