如何从 Firestore 中多个文档的数组中删除元素?

2024-04-20

我有一个用户集合。每个用户都有一个名为的数组favoriteNames.

root <- [Firestore]
 users <- [Collection]
   uid <- [Document]
    favoriteNames: ["Ana", "Jane", "Dave"] <- [Array]
   uid<- [Document]
    favoriteNames: ["Ana", "Merry", "John"] <- [Array]

我想从所有文档中删除“Ana”。这是我尝试过的:

usersRef.whereArrayContains("favoriteNames", FieldValue.arrayRemove("Ana").get()

但这不起作用。如何从所有数组中删除“Ana”?


无法使用 Firestore 执行类似 SQL 的“更新位置”类型查询。如果您有多个文档需要更新,则必须单独更新每个文档。如果需要,您可以使用事务或批量写入以原子方式执行所有更新。

至少,您在这里需要做的是:

  1. 查询所有要更新的文档。这将涉及做一个数组包含查询 https://firebase.google.com/docs/firestore/query-data/queries#array_membership为了所有的“安娜”。

    usersRef.whereArrayContains("favoriteNames", "Ana")
    
  2. 迭代查询结果。

  3. 对于每个匹配文档快照 https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/DocumentSnapshot,获取其DocumentReference并使用update() with FieldValue.arrayRemove("Ana")

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

如何从 Firestore 中多个文档的数组中删除元素? 的相关文章

随机推荐

  • std::cin 跳过空格

    所以我试图编写一个函数来检查一个单词是否在句子中 通过循环遍历 char 数组并检查相同的 char 字符串 只要句子中没有任何空格 该程序就可以运行 我用谷歌搜索了一下 他们都是同样的建议 cin getline 但无论我如何实现它 它要
  • 创建您自己的 .NET 程序集缓存

    在我正在编写的 net 应用程序中 我需要在本地缓存各个位置的程序集 以便即使原始位置不可用 我的应用程序也可以使用它们 我无法使用 GAC 主要是因为我想要可移植性 而且还因为程序集可能未签名 有谁知道任何支持此功能的 net 代码吗 我
  • 使用公共类实现 Monolog

    我成功地实现了用于测试目的的 Monolog 记录器 现在我正在尝试在项目中使用它 该项目不使用任何MVC框架 我正在尝试编写一个公共类文件来包装对 Monolog 实例的访问 常用类文件 文件 app log php require au
  • 如何根据其他 JSON 值获取 JSON 值

    我在 Go 中有一个来自 XML resp body 的结构 pdp sellableUnits attributes id 22555278 type size value 03 5 type sizeJ struct PDP struc
  • 引导标签之间没有间距

    在我的应用程序中 我试图有几个连续的标签 就像这样jsbin http jsbin com hesav 1 相反 我得到这个 正如您所看到的 标签之间没有间距 这可能是因为我的CSS有问题 但我无法找到罪魁祸首 bootstrap 中定义的
  • Marionette.Renderer、Underscore 模板和 i18next 国际化

    我们目前需要使用 Backbone Marionette 和下划线模板向中型应用程序添加国际化 经过一番彻底的研究后 出现了两种有效的选择 下属18n https github com ggozad underi18n它提供与下划线的直接集
  • 从多个表中选择 Sequelize

    我目前正在使用sequelize开发一个系统 我需要一个查询来从多个表中获取数据 如下所示 Select Courses id Rooms DisplayLabel Periods DisplayName Subjects Name fro
  • 对超过 UInt16 屏障的程序集信息进行版本控制

    过去 我通常使用变更集或 svn 编号来对二进制文件进行版本控制 例如1 1 123 3 其中较大的数字是来自源代码控制系统的变更集或版本 然而 对于我现在使用的系统 我们已经远远超过了类似 70000 变更集的 uint 障碍 因此在用作
  • jQuery dataTables - 获取过滤的列值

    我正在使用 jQuery dataTable 当用户选择一个下拉列表时 它会搜索数据表并对其进行过滤 并根据搜索到的数据重新绘制内容 mtTable columns each function mtTable column 22 searc
  • javascript 之谜:两个对象在构造函数、原型和 __proto__ 链接方面看起来相同,但行为不同

    我是一位经验丰富的面向对象程序员 但这让我着迷 为什么我可以执行 new f 而不能执行 new a 我将不胜感激任何指点 first a few facts if Object instanceof Function console lo
  • 如何使批量插入适用于多个表

    当存在外键关系时 如何使用SQL Server批量插入插入到多个表中 我的意思是桌子是这样的 CREATE TABLE dbo UndergroundFacilityShape FacilityID int IDENTITY 1 1 NOT
  • VSCode - 光标在 AltGr 上向左移动。如何修复它?

    如果我在 vscode 编辑器中输入以下文本 http stackoverflow com Link to Stackoverflow omg 我得到这个结果 https stackoverflow com Link to Stackove
  • 如何在 Objective-C 中调试单例

    我的应用程序包含几个单例 以下是本教程 http cocoawithlove com 2008 11 singletons appdelegates and top level html 然而 我注意到 当应用程序因单例而崩溃时 几乎不可能
  • 如何在 PowerShell 中重命名文件?

    我有 2 个任务需要使用 PowerShell 来完成 1 我还需要将所有index asp重命名为Default aspx 2 我有一个目录C WWW我需要重命名所有 asp文件到 aspx 递归地 我已经尝试过Rename Item命令
  • PHP ORA-01745: 无效的主机/绑定变量名警告

    01745 运行滚动代码时发出无效主机 绑定变量名称警告 我不确定为什么会发生这种情况请帮忙 我觉得我的绑定一定有问题 但我看不出它有什么问题 我的 Start 和 End 变量看起来像 DD MM YY 我在下面列出了 PHP 代码 谢谢
  • 在reactjs中,数组或迭代器中的每个子元素都应该有一个唯一的“key”属性

    我完全困惑了 因为我的控制台出错了 我阅读了reactjs文档和stackoverflow上的所有提示 但我不明白问题是什么 我看到书名列表 item volumeInfo title 但控制台有错误 这是我的代码 import React
  • 将 NSNumber 与 0 进行比较不起作用?

    我的应用程序中有一个 JSON 解析器 我将值加载到detailDataSourceDict 变量中 当我尝试获取数组的 valueForKey 并尝试将其与 0 进行比较时 它永远不会起作用 这是我的代码 if indexPath row
  • 无法使用 JMS 应用程序从 IBM MQ 获取响应

    我们使用 IBM MQ 以请求 回复方式与第三方进行通信 我们向他们发送请求 他们给我们答复 目前 我们都有一个简单的基于 Java 的本机 IBM MQ 应用程序 我们计划使用 spring jms 重写我们的代码 但是当使用 sprin
  • Pygame 等待屏幕更新

    我刚刚开始使用 pygame 我只是想在屏幕上移动点 问题是它发生得很快 当循环运行时我的 pygame 屏幕冻结 没有响应 然后只显示点的最后一次迭代位置 我认为更新速度很快 当我包括pygame event wait 然后 当我输入输入
  • 如何从 Firestore 中多个文档的数组中删除元素?

    我有一个用户集合 每个用户都有一个名为的数组favoriteNames root lt Firestore users lt Collection uid lt Document favoriteNames Ana Jane Dave lt