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

2024-01-27

我该如何删除all给定推送 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);
}

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

希望能帮助到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebase - 如何一次删除多个条目? 的相关文章

  • Android:如何测试自定义视图?

    Android 中有多种单元测试方法 测试我编写的自定义视图的最佳方法是什么 我目前正在将其作为仪器测试用例活动的一部分进行测试 但我宁愿只测试孤立的视图 对于缺乏以视图为中心的测试用例实现的一个简单解决方案是在包含视图的测试项目中创建一个
  • Eclipse 运行时 Dalvik 错误

    当我要运行任何程序时 会显示此对话框 在 Eclipse 中 这些错误显示在控制台中 2013 02 25 19 05 09 Dex Loader Unable to execute dex Target out of range 0000
  • Android 中的计时器任务在无限期时间后停止运行

    我是安卓新手 我正在开发一个应用程序 其中一段特定的代码在后台每 5 秒后执行一次 为了实现这一目标 我使用带有定时器的服务 其中包含定时器任务 有时它工作正常 但经过一段时间后 我的服务正在运行 但计时器任务在 android 中自动停止
  • Android ViewPager + 带有动态 ListView 的 Fragments

    在我的应用程序中 我有带有选项卡的活动 假设有 10 个选项卡 每个标签页包含Fragment with ListView 此 ListView 中显示的数据是从我的服务器动态加载的 我用ViewPager显示这些页面 我不想保留所有Fra
  • 创建像 facebook android 一样的登录动画

    我想创建一个登录页面 如 facebook android 应用程序 其中包含用户名和密码EditText字段被隐藏 页面上会显示一个徽标 该徽标会在上方动画一定距离并停留在新位置 然后显示编辑字段 这是我尝试过的 但这里的徽标从页面底部开
  • ListView 可以存储多少个项目?

    我是 Android 编程新手 我想知道ListView可以存储多少个项目 我在文档中搜索 但他们没有谈论这个 如果我将很多 可能是 10k 项放入 ListAdapter 中 会影响性能吗 干杯 MK ListView 在 Android
  • 将 match_parent 转换为“0dp”

    当我使用android layout height match parent or android layout width match parent 作为约束布局中子项的高度 宽度并构建 Gradle 文件 它会自动更改为android
  • HttpURLConnection.getResponseCode() 冻结执行/不会超时

    我正在编写一个 Android 应用程序 它连接到受密码保护的 cPanel 服务器 Apache 2 2 22 页面 当身份验证凭据正确时 我的连接没有问题 但是 当凭据不正确时 我的 Android 应用程序似乎会冻结在HttpURLC
  • Android 中带有传递参数的点击侦听器方法

    我是 Android 和 Java 新手 我想创建一个带有 int 参数的 onClick 方法 所以这是我的尝试 public void randomClick final int randomIndex private OnClickL
  • Android:直接从浏览器下载文件

    我试图让 Android 浏览器下载特定类型 xxx 的文件 这样我就可以设置一个应用程序与其关联 我已经成功完成了关联部分 因为我已经做到了 以便在资源管理器应用程序中单击正确类型的文件会加载适当的应用程序 我希望这会转移到浏览器 这样如
  • 在 Swift 应用程序中从 Excel 文档读取数据

    我有一个 Excel 文档 其中包含一些表格和大量数据点 我想从中读取内容以填充一些 UICollectionView 单元格和我的应用程序的其他部分 就像是 Country Temperature Cost Spain 23 80 Fra
  • org.apache.http 软件包在 API 级别 23 中被删除。替代方案是什么?

    在更新到最新的 android API 级别 23 Marshmallow 后 通过 build gradle 添加以下更改后 所有 org apache http 类都不起作用 android compileSdkVersion 23 b
  • Android 中何时使用服务、何时不使用服务

    我从事Android开发已经不到两年了 我仍然对这个看似简单的问题感到困惑 何时应该实施一项服务 根据我的经验 有一些罕见的情况 但我对此表示怀疑 因为每部手机上都运行着很多这样的情况 我怀疑这只是一个糟糕的应用程序设计 这本质上是我的问题
  • 如何获取任何已安装 Android 应用程序的清单权限

    是否可以获得任何已安装的 Android 应用程序的清单权限 感谢您的提示 让它运行 final Intent mainIntent new Intent Intent ACTION MAIN null mainIntent addCate
  • android 以编程方式在单选组按钮之间添加填充

    我有一个 xml 格式的单选组 按钮是通过编程生成的 如何以编程方式添加按钮之间的间距 我以为是这样的LayoutParams但我的对象没有明显的setPadding or setMargins方法 这就是我正在尝试的 RadioButto
  • 在 Android 中创建硬链接和符号链接

    我正在创建一个应用程序 我想在其中使用 Android 外部内存文件系统中的硬链接和符号链接 我尝试过使用命令 Os link oldpath newpath Os link oldpath newpath 但是 当我尝试这样做时 我收到此
  • 找不到 com.android.tools.build:gradle:3.0.0 [重复]

    这个问题在这里已经有答案了 当我尝试从命令行构建可能的 Android 项目时 我收到以下错误消息 配置项目 mylib 时出现问题 无法解析配置 mylib classpath 的所有文件 找不到 com android tools bu
  • okHttp3 java.lang.NoSuchMethodError:没有虚拟方法 setCallWebSocket

    我已从 okhttp Retrofit 更新到 okhttp3 Retrofit2 但我的应用程序因此异常而无法启动 FATAL EXCEPTION EventThread Process appli speaky com PID 1470
  • SDK管理器不显示示例包选项

    我关注的是安卓安装示例的开发人员链接 http developer android com tools samples index html包裹 但是 当我展开Android平台的包列表时 没有 SDK示例 选项 复选框 可用 为什么 我已
  • 2 位小数格式的货币输入

    我需要将输入货币格式化为 2 位小数格式 例如 当用户输入 2 时 它看起来为 2 00 美元 然后当用户输入 2 时 它会转换为 22 00 美元 等等 我采用类似的方法 当用户输入 2 时 它会转换为 0 02 下一个 2 将是这样的

随机推荐

  • 无法找到软件包 openssl-dev

    我正在尝试使用 Ubuntu 18 04 在 Linux 上安装 ROOT CERN 软件包 每当我进入先决条件下载时 都使用以下命令 sudo apt get install dpkg dev cmake g gcc binutils l
  • 接口继承一致性

    首先看这段代码 class Program static void Main string args var x Base new Derived IMethod x DoWork Console ReadKey interface IMe
  • 背包0-1个定量

    我正在编写具有多个约束的背包 0 1 的变体 除了重量约束之外 我还有数量约束 但在本例中 我想解决背包问题 因为我的背包中需要恰好有 n 件物品 且重量小于或等于 W 目前正在为简单的 0 1 案例实现动态编程 ruby 解决方案 基于
  • 身份验证:JWT 使用与会话

    在身份验证等情况下 使用 JWT 相对于会话有什么优势 它是作为独立方法使用还是在会话中使用 JWT 本身并没有使用 会话 的优势 JWT 提供了一种在客户端维护会话状态的方法 而不是在服务器上进行维护 人们在问这个问题时通常的意思是 使用
  • file.slim.js 中的 slim 是什么

    请原谅我的无知 但我刚刚使用 npm 安装了 jQuery 并且在 jQuery 文件之间有一个名为jquery slim js 什么是slim 我知道min代表缩小但苗条对我来说是新的 顺便说一句我很确定slim不像min因为还有另一个文
  • Bash 条件:如何使用“and”表达式? (如果 [ ! -z $VAR && -e $VAR ])

    我想我不清楚如何进行 和 测试 我想确保存在一个可以很好地工作的论点 e VAR 但事实证明 在空字符串上也计算为 true 这是我不想要的 我如何将它们 和 在一起 或者是否有另一个一元测试可以实现我想要的 if z var e var
  • Julia 中的复制和深复制有什么区别?

    我试图理解之间的区别copy and deepcopy 在朱莉娅 根据我读到的内容朱莉娅文档 https docs julialang org en v1 base base Base copy这好像是deepcopy 复制这些值 然后创建
  • 适用于 iOS 的 Google 地图 API myLocationEnabled 无法正常工作

    我正在尝试使用 Google Maps API 但在获取用户位置时遇到问题 观察到的值似乎永远不会改变 因为observeValueForKeyPath 从未被调用 注意 我正在运行 Xcode 6 Beta 5 和 iOS 8 beta
  • 在 Swift 中使用 AWSTask 对象的正确方法是什么?

    您好 提前感谢您的宝贵时间 在我的代码中 我向 AWSSQS 发出各种请求 这些请求都返回 AWSTask 我发现使用这些 AWSTask 对象非常困难 同时还试图将特定于 AWS 的所有逻辑保留在单个类中 以便我可以在需要时轻松切换到不同
  • 应用程序根目录的默认路由

    我该如何告诉我的mvc 应用程序路由到特定Controller and Action当它们没有被指定时 调试时http localhost 54500 应该路由到http localhost 54500 Home Index 目前我有 ro
  • 在 Devise 中为用户手动登录时,如何将“记住我”设置为“是”?

    In Devise http github com plataformatec devise 我像这样登录我的用户 sign in and redirect user user 在默认登录页面中 有一个复选框可供用户选择 这样他们返回站点时
  • 如何在Android中打开现有的Fragment交易?

    如何在Android中打开现有的Fragment交易 是否用于将现有片段替换为操作栏中下拉列表中的新片段 以防万一这就是您所要求的 请更改 FragmentTransaction ft openFragmentTransaction to
  • Tomcat 7 - JSESSIONID cookie 无法从 JavaScript 代码访问

    有谁知道 Tomcat 6 和 Tomcat 7 之间的配置发生了什么变化会导致JSESSIONIDcookie 无法通过 JavaScript 访问 使用 Tomcat 6 alert document cookie JSESSIONID
  • 如何配置log4j2具有两个根级别?

    我想按以下方式配置 log4j2 向 Sentry 报告错误事件 将 INFO 事件报告到日志文件 就像是
  • 边距和填充之间的区别?

    到底有什么区别margin and padding在CSS中 看来确实没有多大用处 您能否举个例子来说明差异所在 以及为什么了解差异很重要 padding是内容和内容之间的空间border 然而margin是边界之外的空间 这是我从谷歌快速
  • 如何在 Spring Rest Controller 中区分部分更新的 null 值和未提供的值

    当使用 Spring Rest Controller 中的 PUT 请求方法部分更新实体时 我试图区分 null 值和未提供的值 考虑以下实体作为示例 Entity private class Person Id GeneratedValu
  • 为有效信用卡生成随机数的好方法是什么?

    我正在用 Java 开发一套用于验证和使用信用卡的工具 到目前为止 我支持 卢恩验证 日期验证 简单到期 基于品牌 Visa MasterCard 等 的卡代码长度验证 CVV CVC CID 信用卡号长度验证 基于品牌 BIN IIN 验
  • pandas groupby 可以将 DataFrame 转换为 Series 吗?

    我想使用 pandas 和 statsmodels 在数据帧的子集上拟合线性模型并返回预测值 但是 我无法找出正确的 pandas 习惯用法 这是我正在尝试做的事情 import pandas as pd import statsmodel
  • 如何为 AWS Lambda nodejs 运行时构建单个 js 文件

    我们正在研究一个项目 框架 https github com jaws stack JAWS tree v1 0有助于在 AWS Lambda 中部署和维护代码 我想将 lambda 函数的所有 node js 代码构建 捆绑到一个 js
  • Firebase - 如何一次删除多个条目?

    我该如何删除all给定推送 ID 的条目 例如 假设KoxoxwTqfb50E1Gvi9F推送 ID 位于我的数据库的许多位置 即在许多键下 我想删除所有条目KoxoxwTqfb50E1Gvi9F立即而不是静态删除所有条目 因为我知道它们的