如何获取此 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 找到该节点。
假设,我想删除名为-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 找到该节点。