如何使用 Firestore 更新“对象数组”?

2024-03-04

我目前正在尝试 Firestore,但我陷入了一些非常简单的事情:“更新数组(又名子文档)”。

我的数据库结构非常简单。例如:

proprietary: "John Doe",
sharedWith:
  [
    {who: "[email protected] /cdn-cgi/l/email-protection", when:timestamp},
    {who: "[email protected] /cdn-cgi/l/email-protection", when:timestamp},
  ],

我正在尝试(但没有成功)将新记录推入shareWith对象数组。

我试过了:

// With SET
firebase.firestore()
.collection('proprietary')
.doc(docID)
.set(
  { sharedWith: [{ who: "[email protected] /cdn-cgi/l/email-protection", when: new Date() }] },
  { merge: true }
)

// With UPDATE
firebase.firestore()
.collection('proprietary')
.doc(docID)
.update({ sharedWith: [{ who: "[email protected] /cdn-cgi/l/email-protection", when: new Date() }] })

没有一个有效。这些查询会覆盖我的数组。

答案可能很简单,但我找不到......


Firestore 现在有两个函数,允许您更新数组而无需重写整个数组。

Link: https://firebase.google.com/docs/firestore/manage-data/add-data https://firebase.google.com/docs/firestore/manage-data/add-data, 具体来说https://firebase.google.com/docs/firestore/manage-data/add-data#update_elements_in_an_array https://firebase.google.com/docs/firestore/manage-data/add-data#update_elements_in_an_array

更新数组中的元素

如果您的文档包含数组字段,您可以使用arrayUnion() and arrayRemove()添加和删​​除元素。arrayUnion()添加元素 到一个数组,但仅限于尚未存在的元素。arrayRemove()删除每个给定元素的所有实例。

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

如何使用 Firestore 更新“对象数组”? 的相关文章

  • Bootstrap 标签栏平滑移动导航按钮

    我有一个用于切换块的普通引导选项卡面板 在导航中切换块时 活动选项卡会突出显示 但现在 当我单击活动选项卡的背景时 它会立即发生变化 是否可以使切换选项卡时背景不会立即改变 而是根据需要哪个选项卡而平滑地左右移动 这可以用以下方法完成吗cs
  • 返回上一页

    我正在使用表格来 评价 页面 此表单将数据 发布 到其他地方的 php 脚本 我只是想在处理表单后显示一个链接 这将使用户返回到上一页 我可以在 php 脚本中使用 javascript 来执行此操作吗 GF 您可以使用链接来调用histo
  • 如何在 mongodb 聚合管道中使用 Javascript 对象?

    我有一个 JS 对象norm我想在 mongo 聚合管道中使用它 如下所示 var norm 1 1 2 1 16 3 1 413 4 1 622 5 1 6 6 1 753 7 3 001 8 2 818 9 3 291 10 2 824
  • 从 Firebase Crashlytics 控制台导出数据?

    我正在试用 Firebase Crashlytics 日志数据的控制台显示很混乱 见下图 有没有办法导出完整的崩溃报告 我在 Firebase 控制台中看不到 我从未使用过原始的 Crashlytics 但我看到它有一个导出工具 Fireb
  • 如何在 google.maps.event.addListener 中使用它

    以下示例有效 但是当我尝试传递参数并使用this在该功能不起作用 Working google maps event addListener markers i click showInfoWindow function showInfoW
  • 如何将“X-Content-Type-Options: nosniff”添加到我的网络服务器的所有响应标头中

    我正在运行一个 apache 网络服务器 我想将 X Content Type Options nosniff 添加到来自我的网络服务器的所有响应标头 我怎样才能做到这一点 是否可以通过更改 apache 配置文件来实现此目的 确保 mod
  • Dialogflow Fulfillment Webhook 调用失败

    I am new to dialogflow fulfillment and I am trying to retrieve news from news API based on user questions I followed doc
  • Chrome 开发工具命中代码但未命中断点

    我在 chrome 开发工具上启用了断点 并且在一行上有一个断点 我知道 chrome 正在运行 因为我将断点放在具有以下语句的行上 alert why is this not breaking 如果我在本地主机中找到该文件 则断点有效 断
  • Pjax动画

    我终于让 pjax 工作了 但我还有另一个问题 如何添加一些 jquery 动画 如淡出 幻灯片旧内容和淡入 幻灯片新内容 默认情况下 pjax 只是更改内容 没有任何好看的效果 任何帮助将非常感激 此致 基本上 你有一堆事件 https
  • Javascript:我应该隐藏我的实现吗?

    作为一名 C 程序员 我有一个习惯 将可以而且应该私有的东西设为私有 当 JS 类型向我公开其所有私有部分时 我总是有一种奇怪的感觉 而且这种感觉并没有被 唤起 假设我有一个类型draw方法 内部调用drawBackground and d
  • 修改 Twitter 帖子上可编辑 Div 的内容

    我正在编写一个 chrome 扩展 它可以帮助用户在 Twitter 上输入内容 当在 twitter 上写推文时 twitter 会打开一个可编辑的 div 容器 当用户输入内容时 twitter 大概正在使用某些网络框架 会生成子 di
  • Rangy:插入符号下的单词(再次)

    我正在尝试创建一个预输入代码以添加到 wysihtml5 富文本编辑器 基本上 我需要能够插入人员 标签引用 例如 Twitter Github Facebook 我发现一些人试图实现同样的事情的代码 http jsfiddle net A
  • Next.js:错误:React.Children.only 期望接收单个 React 元素子元素

    我有一个名为Nav inside components目录及其代码如下所示 import Link from next link const Nav gt return div a Home a a About a div export d
  • jQuery 中什么函数相当于 .SelectMany()?

    让我解释一下 我们知道 jQuery 中的映射函数充当 Select 如 LINQ 中 tr map function return this children first returns 20 tds 现在的问题是我们如何在 jQuery
  • Angularjs : $locationProvider.hashPrefix("!") ;

    我想将网址显示为 www test com 因为我正在使用 locationProvider hashPrefix 但它显示网址为 www test com 我想 哈希之前而不是哈希之后 Thanks var app angular mod
  • 在javascript中创建图像的缩略图方块(不丢失纵横比)

    我正在制作一个客户端拖放文件上传脚本作为书签 在上传之前 我使用 File API 将图像读取为 base64 格式并将其显示为缩略图 This is how my thumbnails look like I want them to l
  • Vue-Router 抽象父路由

    我正在尝试将当前网站迁移到 vuejs 站点地图必须是 login signup password reset browse search dozens of other routes 由于其中一些路线共享大量 fx 因此我将它们设为父路线
  • 将两个数字相加将它们连接起来而不是计算总和

    我将两个数字相加 但没有得到正确的值 例如 做1 2返回 12 而不是 3 我在这段代码中做错了什么 function myFunction var y document getElementById txt1 value var z do
  • Jquery 以编程方式更改

    文本

    编辑 解决方案是将其添加到个人资料页面而不是性别页面 profile live pageinit function event p pTest text localStorage getItem gender 我在列表视图中有一个带有一些文
  • $ 在 JQuery 中意味着什么

    在下面的 var obj one 1 two 2 three 3 four 4 five 5 each obj function i val console log val 这里是什么意思 是对象吗 是一个别名jQuery对象 函数 它充当

随机推荐

  • 是否可以为条形图中的每个类别自定义标签?

    最近 我收到一个要求 需要创建一个显示每个项目数据的条形图 这是一个例子 如您所见 Category是项目的名称 并且Series是该项目中不同类型的数据 但是 由于系统不保证项目名称的唯一性 将其用作类别可能会导致问题 并且我将无法使用项
  • CakePHP Cookie 被打乱 - Suhosin 相关

    由于某种原因 在设置后 我无法在任何页面上读取 CakePHP 应用程序中的任何 cookie 唯一返回的是乱码文本 我的代码很简单 this gt Cookie gt write Region test reg this gt Cooki
  • Linux 系统调用的内部结构

    当线程通过引发中断 80 进行系统调用时会发生什么 详细 Linux 对线程的堆栈和其他状态做了什么工作 对处理器进行了哪些更改才能将其置于内核模式 运行中断处理程序后 控制权如何恢复到调用进程 如果系统调用无法快速完成怎么办 例如从磁盘读
  • 有没有办法让 SQLAlchemy 不在 BEGIN 和 COMMIT 中包装 SQL 写入?

    我在 Pylons 1 0 框架上使用 SQLAlchemy 0 6 4 我已经尝试了将 autoflush 和 autocommit 设置为 True 和 False 的所有排列 但我发现 SQLAlchemy 想要包装所有 SQL 会话
  • R 包不存在

    我收到了可怕的包裹R不存在 它要了我的命 代码很好 我在市场上有运行该代码的应用程序 现在效果很简单webview应用程序 的 0 R string app name我的有错吗main xml and string xml很好 我很困惑 我
  • Libgdx - 支持 OpenGL 4+

    是否可以仅使用 Libgdx 进行桌面开发并从 Libgdx 抽象访问较新版本的 Opengl 我的意思是 如果你想开发移动应用程序 你将必须使用 Opengl ES 的某个版本 它不支持经典 Opengl 那样的很多功能 例如绘制线框等
  • Django-channels:ChatConsumer 仅向一个用户发送消息,而不是向两个用户发送消息

    我正在使用 django channels 和 redis 在 django 和 Angular 中实现聊天应用程序 套接字已连接并正常工作 但我面临的问题是 当两个用户在线并使用相同的线程 url 连接同一个聊天室时 它会连接 但任何用户
  • 使用包含单行分区的 Cassandra 表是一种不好的做法吗?

    假设我有一张这样的桌子 CREATE TABLE request transaction id text request date timestamp data text PRIMARY KEY transaction id 据我了解 tr
  • PHP 包含绝对路径

    我的网站上有一个名为 basePath 的变量 其设置为 basePath Systems dgw 我在所有 css js 和图像标签上使用它 为了更好的可见性而缩短 我对这些包含没有任何问题 它们在我所在的任何文件和文件夹中都可以正常工作
  • pip 安装错误:SyntaxError:语法无效

    尝试在 CentOS6 上安装 virtualenv requests 或 pex 时 pip install 不起作用 我使用的是 python2 6 和 pip 9 0 1 谁能告诉我为什么会发生这种情况 pex build root
  • 如何获取点击了哪个按钮?

    我想在单击特定按钮时检查某些条件 该怎么做 document ready function var prm Sys WebForms PageRequestManager getInstance prm add initializeRequ
  • Android 数据绑定构建错误:[数据绑定插件]:无法设置数据绑定

    我正在使用 Google 的 Android 数据绑定库 我曾经使用过该库 现在 似乎 某些东西 发生了变化 并且给数据绑定库带来了问题 我被一个非常普遍的错误所困扰 该错误被证明很难调试 data binding plugin faile
  • Kafka连接消费者引用偏移量并存储在消息中

    如果我使用 kafka connect 来消费消息并存储到 s3 使用 kafka connect s3 连接器 我是否可以将消息偏移量与事件负载一起存储 我希望使用这些数据对消息进行一些排序 并检查是否存在任何间隙或检查我收到的消息中是否
  • 如何在 iOS 中的 TableView 中添加工具栏

    我正在构建一个简单的笔记应用程序 我想在 TableView 的底部添加一个静态栏 例如 我想添加一个帮助按钮 我怎样才能只对我的 TableView 执行此操作 So far 我通过情节提要添加了一个工具栏 但这使得它粘在最后制作的 ta
  • 使用 $compile 测试 ng-if

    我试图通过针对预定义范围编译视图并运行 scope digest 来测试我的模板之一中的 ng if 我发现无论我的条件是真还是假 编译的模板都是一样的 我希望编译后的 html 在 false 时删除 ng if dom 元素 befor
  • 将“pip install”分解为较小的步骤,以便我可以在安装之前编辑包

    我对 pip 的熟悉最终使我能够执行以下操作 pip install pip uninstall 和 pip list 将我想要安装的包的名称作为单个参数 到目前为止 这种有限的知识使我能够安装大多数简单的软件包 有时 如果幸运的话 我什至
  • 并行化字典理解

    我有以下功能和字典理解 def function name params results fits open name
  • 无法让 Jetty 扫描带注释的类

    我有一个带有嵌入式码头服务器的应用程序 我像这样启动它 放置在 main 中并使用 eclipse 启动 Server server new Server port WebAppContext context new WebAppConte
  • 从 couchbase 存储桶复制到 Elasticsearch 索引时出现问题?

    此问题似乎与在 couchbase 中使用 XDCR 有关 如果我有以下简单的对象 1 name Mark age 30 2 name Bill age forty 并设置一个elasticsearch索引 curl XPUT http l
  • 如何使用 Firestore 更新“对象数组”?

    我目前正在尝试 Firestore 但我陷入了一些非常简单的事情 更新数组 又名子文档 我的数据库结构非常简单 例如 proprietary John Doe sharedWith who email protected cdn cgi l