gpt4 book ai didi

android - Firebase - 如何一次删除多个条目?

转载 作者:行者123 更新时间:2023-12-01 18:48:29 25 4
gpt4 key购买 nike

如何删除给定推送 ID 的所有条目?

例如,假设 KoxoxwTqfb50E1Gvi9F 推送 ID 位于我数据库的多个位置,即在多个键下,我想立即删除 KoxoxwTqfb50E1Gvi9F 的所有条目,而不是静态删除所有条目(因为我知道它们的位置)。

换句话说,有没有办法告诉 Firebase“删除整个数据库中 KoxoxwTqfb50E1Gvi9F 的所有条目”?

最佳答案

为了从数据库中删除多个条目,您需要知道所有这些位置(引用)。所以换句话来说,你在添加数据的同时,也应该删除它。

假设您的数据库如下所示:

Firebase-root
|
--- Users
| |
| --- userUid1
| | |
| | --- //user1 data
| |
| --- userUid2
| |
| --- //user2 data
|
--- Groups
|
--- groupId1
| |
| --- //group1 data
| |
| --- Users
| |
| --- userUid1: true
| |
| --- userUid3: true
|
--- groupId2
|
--- //group2 data

我建议您使用以下方法:

private static void deleteUser(String userId, String groupId) {
Map<String, Object> map = new HashMap<>();
map.put("/Users/" + userId + "/", null);
map.put("/Groups/" + groupId + "/Users/" + userId + "/", new HashMap<>().put(userId, null));
//other locations
databaseReference.updateChildren(map);
}

此方法会自动删除所有这些条目。使用这些路径,您可以通过一次调用 deleteUser() 方法同时更新 JSON 树中的多个位置。以这种方式进行的同时删除是原子的:要么所有更新成功,要么所有更新失败。

希望有帮助。

关于android - Firebase - 如何一次删除多个条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59774375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com