Firebase Cloud Firestore 创建条目或更新(如果已存在)

2023-11-24

我不知道何时向 Firebase Firestore 数据库添加或更新条目。

Using doc_ref.set如果文档不存在,则会添加该文档。如果文档字段已经存在并且 set 被调用,它还将覆盖所有文档字段。

Using doc_ref.update如果文档存在,将更新文档的字段。如果该文档不存在,则不会发生任何事情。

如果该字段当前不存在,如何向文档添加新字段,或者如果存在则更新该字段?我可以读取数据库并检查该字段是否存在,然后使用set or update,但肯定有更简单的方法吗?


您正在寻找的是merge选项中的set手术。从文档上设置文档:

var cityRef = db.collection('cities').doc('BJ');

var setWithMerge = cityRef.set({
    capital: true
}, { merge: true });

如果您不确定文档是否存在,请传递将新数据与任何现有文档合并的选项,以避免覆盖整个文档。

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

Firebase Cloud Firestore 创建条目或更新(如果已存在) 的相关文章

随机推荐

  • LINQWhere() 和 FirstOrDefault() 之间的逻辑差异

    我知道这听起来可能是重复的问题 比如this or this 但我想清楚地了解此查询中将发生的迭代次数 我的假设如下 假设我收藏了 1000 件物品 在Where 查询中 它迭代每个项目并将其添加到IEnumerable 即它总是需要 O
  • GCP API网关:无法使用路径参数

    我正在努力将路径参数从网关传递到实际端点 这是我的 Open API yaml swagger 2 0 info description Blah blah version 0 0 1 title SSAuth contact email
  • 类型库中的示例代码导致 TypeError: 'type' object is not subscriptable,为什么? [复制]

    这个问题在这里已经有答案了 考虑使用 Python 文档typing为什么下面的代码不起作用 gt gt gt Vector list float Traceback most recent call last File
  • PHP 中的 DNS 查找

    我的 Windows 服务器间歇性地失去查找 DNS 信息的能力 我正在尝试找出问题的根本原因 但同时我希望能够监视服务器是否可以执行查找 基本上 它应该尝试查找一些常见的主机名 如果查找成功则显示 成功 该站点运行 PHP 因此我希望监控
  • Firebase 事务返回 null 并完成且没有错误

    我有一个简单的事务 它应该返回存储在实时数据库中的子节点的计数并递增它 值得注意的是 此事务位于 firebase cloud onWrite 函数内部 问题是返回的数据为空 我知道当客户端数据过时时这是可能的 但是函数退出时没有错误并且提
  • 在调试模式下找不到此可执行文件的有效配置文件

    当我尝试在设备上调试我的应用程序时 出现此错误 我创建了开发配置文件 正如开发人员门户中提到的那样 我的开发设备已在配置文件中选择 并且我正在从 Target 的代码签名身份菜单中选择正确的配置文件 我多次重新创建了配置配置文件 还删除并重
  • Ajax队列骨干js

    我正在 Rails 3 2 2 上运行 Backbone js 0 9 2 我有一个用于添加成本行的页面 成本有 3 个文本字段 标题 描述和价格 我节省了模糊的每一项成本 model save 以非常短的间隔被多次调用 哪个问题一crea
  • Java:如何取消应用程序退出

    在我的一个程序中 我希望当用户尝试退出应用程序时出现一个对话框 然后用户必须选择保存程序的某些状态 而不是保存或取消退出操作 我写这篇文章是为了尝试先找到解决方案 然后再实施它 import javax swing import java
  • C++ 对类中未初始化的变量启用警告

    让我们有这个代码 include
  • 在 Laravel 5 中保存/更新用户配置文件

    我似乎无法将更新的配置文件保存到数据库中 在我的 edit blade php 中 Form model user method gt PATCH route gt profile update user gt company name f
  • 如何将 ShowCaseView v5 构建器与片段一起使用?

    我找到了旧版本的示例 但没有找到新构建器模式的示例 有谁知道如何做到这一点 Builder 构造函数只需要一个 Activitypublic Builder Activity activity so public View onCreate
  • 使用“LKJCorr”先验修改 PyMC3 中的 BPMF:使用“NUTS”的 PositiveDefiniteError

    我之前实现了原来的贝叶斯概率矩阵分解 BPMF 模型中pymc3 看我之前的问题供参考 数据源和问题设置 根据 twiecki 对该问题的回答 我使用以下方法实现了该模型的变体LKJCorr相关矩阵的先验和标准差的统一先验 在原始模型中 协
  • 如何更改 RotatingFileHandler 在 Python 中命名文件的方式?

    我想更改旋转文件处理程序命名文件的方式 例如 如果我使用 RotatingFileHandler 它会在日志文件达到特定文件大小时将其分离 命名为 日志文件名 扩展名编号 如下所示 filename log first log file f
  • 使用命名函数进行回调

    我在使用匿名函数进行 JavaScript 分析时遇到了一个主要问题 我总是有很多匿名函数 其中大多数是回调 这使得分析器的分析结果对我来说非常困难 最后我决定使用命名函数进行回调 如下所示 var f function callback
  • PHP 连接变量

    对你们来说可能是一个简单的问题 在谷歌上找不到它 我正在尝试连接两个变量名称 i 0 for i 0 i lt 5 i if array i gt 0 test i do something else test i do something
  • 检查单词的第一个字母是否是元音

    我正在尝试使用 python 编写一个函数来检查给定单词的第一个字母 例如 ball 是否是大写或小写的元音 例如 here is a variable containing a word my word Acrobat letters i
  • 将文件名作为列值插入数据框中

    我有几个txt文件 每个文件都有由逗号分隔的数据列 每个文件都有自己单独的文件名 到目前为止 我已使用以下代码将这些文件组合成一个大数据框架 files list files data2 lapply files read table he
  • 如何在 getElementsByClassName 中获取当前元素

    考虑一个简单的 JS 事件 document getElementsByClassName test 0 onclick function document getElementsByClassName test 0 innerHTML N
  • 如何在 sinatra 应用程序中对文本数据进行 html_escape 转换?

    我有一个小型 Sinatra 应用程序 它可以从 ERB 模板生成 html 片段 如何对输出进行 html escape Sinatra 中不存在 帮助程序 Rack Utils包括 HTML 转义方法 http www sinatrar
  • Firebase Cloud Firestore 创建条目或更新(如果已存在)

    我不知道何时向 Firebase Firestore 数据库添加或更新条目 Using doc ref set如果文档不存在 则会添加该文档 如果文档字段已经存在并且 set 被调用 它还将覆盖所有文档字段 Using doc ref up