使用编号规则定义 Firestore 文档字段值

2023-12-10

我想将用户信息及其 id(而不是文档 id)存储在文档中。 我想生成像 XYZ0001 这样的 id 特定格式,只要有新用户添加,最后 4 位数字就会自动增加。 例如,XYZ0001、XYZ0002 之类的。 我已经尝试过这个...

return firestore
          .collection("xyzData")
          .doc(resp.user.uid)
          .set({
            firstName: newUser.firstName,
            lastName: newUser.lastName,
            email: newUser.email,
            ca_id: "XYZ" + pad(firestore.collection("xyzData").count())
          })
          .then

其中 pad() 是一个函数,它给出最后 4 位数字

function pad(n) {
  var s = "000" + n;
  return s.substr(s.length - 4);
}

但这给了我一个错误,即 count() 不是一个函数

另外,我正在考虑另一种方法,我可以读取最后一个 id 的值,然后为下一个用户将其加一,但bust将无法实现它。


2022 年秋季更新

在 2022 年 Firebase 峰会上,Firebase 宣布 Cloud Firestore 现在支持count()聚合查询. count()允许您确定集合或查询中的文档数量。


旧答案,2022 年秋季之前

请注意,没有count()的方法CollectionReference。如果您想知道集合中的文档数量,您需要致电异步 get()方法得到一个QuerySnapshot然后使用size财产。但是,您无法将呼叫传递给get()作为对象的属性。


解决方案是维护自己的计数器。

有两种标准方法:

Use firebase.firestore.FieldValue.increment()

正如所解释的在文档中你可以打电话firebase.firestore.FieldValue.increment()增加 Firestore 文档的特定字段。例如,您可以将一个文档放在counter每次想要从序列中获取新值时都会递增和读取的集合。根据您的具体用例,您可能需要使用Transaction.

另请注意,“您每秒只能更新单个文档一次”。

分布式计数器

如果您需要更新您的柜台文件每秒不止一次,您应该使用分布式计数器,如doc.

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

使用编号规则定义 Firestore 文档字段值 的相关文章

随机推荐

  • 工具栏中 Android 微调器上的翻转箭头

    我在屏幕底部的工具栏中有一个微调器 但微调器旁边的箭头指向下方 这是违反直觉的 有没有什么快速的方法可以将箭头翻转到向上 如果有帮助的话 微调器的定义如下
  • 如何等待异步完成

    我想运行一些异步工作流程 然后等待它完成后再打印一些结果 例如 let dowork n async do printfn work d n let creatework async for x in 1 5 do Async Start
  • 正则表达式:将 $ 放入 [ ]

    echo tests perl pe s s t g Unmatched in regex marked by lt HERE in m s lt HERE 5 020000 at e line 1 lt gt line 1 我不能放 in
  • 在 Python 中从多列中查找最接近的值并添加到新列

    我有以下数据框 import pandas as pd import numpy as np data index 1 2 3 4 5 A 11 17 5 9 10 B 8 6 16 17 9 C 10 17 12 13 15 target
  • 在功能性 UIScrollView 中使用 UIPanGestureRecognizer 进行平移视图

    问题 我有一个UIScrollView含有一个UIView我希望允许用户使用UIPanGestureRecognizer 为了使其按预期工作 用户应该能够用一根手指平移视图 但是also能够用另一根手指平移滚动视图 两者都可以同时 每个手指
  • 使用 onesignal 向特定用户发送通知

    我在用着一个信号这是我的项目中的第一次 我必须在某些事件上向特定用户 无论用户在 Chrome 或 Android 设备上登录 发送通知 例如 Whatsapp 也会在移动设备和网站上发送通知 并且仅当用户登录时才发送 我已成功向所有人发送
  • 设置 Rails cookie 的开始日期和到期日期

    如何设置 Rails cookie 在特定日期开始和 或过期 摘录自Rails 5 文档 Cookie 是通过 ActionController cookies 读取和写入的 正在读取的 cookie 是与请求一起接收的 cookie 正在
  • 使用正则表达式选择电话号码的变体

    import re s so the 1234 2 1 1919 215 777 9839 1333331234 20 20 2000 A1234567 515 2331129 7654321B 511 231 1134 512 333 1
  • 使用ios将图像转换为gif [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我正在尝试使用 IOS Xcode 4 5 以编程方式转换 10 张 gif 格
  • 如何将状态栏设置为透明但使导航栏保持黑色?

    正如我的问题所示 我试图弄清楚如何将状态栏颜色设置为透明 同时保持导航栏黑色 自然色 不影响屏幕高度 我参考了这个网站 Android 完全透明的状态栏 部分有效的解决方案之一是 getWindow setFlags WindowManag
  • 致命错误:超出最大执行时间 400 秒

    我有一个 PHP 脚本 在执行长 mysq query 时失败 错误信息是 致命错误 超过了 400 秒的最大执行时间 我在 Windows 上使用 XAMPP 并且更改了 php ini 文件 我的安装中只有一个 将 max execut
  • XMLHttpRequest 无法加载 .... 预检响应具有无效的 HTTP 状态代码 401

    下面是我的服务调用 我正在尝试进行基本的身份验证 我检查了多个博客都找不到解决方案 任何人都可以帮我解决这个问题 因为我收到以下错误 XMLHttpRequest 无法加载 预检响应具有无效的 HTTP 状态代码 401 我也无法在开发人员
  • cURL 给出无法解析主机

    我在新的专用服务器上 但在curl 连接上遇到错误 我试过那个 h curl init curl setopt h CURLOPT HEADER 1 curl setopt h CURLOPT RETURNTRANSFER 1 curl s
  • 如何截取包含视频和画布的 div 的屏幕截图?

    注意 这不是重复的 因为我没有找到任何与截取视频和画布截图相关的问题 并且我尝试了 html2canvas 我们有一个 div 内部包含视频元素和画布 视频用于流式传输 画布用于在视频上绘制任何内容 现在 如果我截取 div 的屏幕截图 它
  • 如何阻止 Excel 工作簿在自动化打开时闪烁?

    我将 GetObject 与工作簿路径结合使用来创建新实例或获取现有 Excel 实例 如果它正在抓取现有的用户创建的实例 则应用程序窗口是可见的 如果相关工作簿路径关闭 它将打开并隐藏 但不会在屏幕上闪烁之前 Application Sc
  • 在shell脚本中将xml文件转换为csv?

    我正在尝试将 xml 文件转换为 csv 文件 我有一个像这样的输入 xml 文件
  • 通过 VMWare 测试 iOS 设备

    我正在尝试将我的 iPhone 应用程序上传到我的 iPhone 我在 VMWare 虚拟机上运行 Xcode 和 OS X 尽管 iTunes 在插入 iPhone 时可以识别它 这意味着虚拟机和 iPhone 之间的 USB 连接工作正
  • 无法使用 jackson 反序列化器反序列化 java.awt.color

    public class TestJacksonColor public static void main String args throws IOException ObjectMapper objectMapper new Objec
  • 在 TensorFlow 中使用多个 CPU 核心

    我广泛研究了有关 TensorFlow 的其他答案 但我似乎无法让它在我的 CPU 上使用多个内核 根据 htop 的说法 以下程序仅使用单个 CPU 核心 import tensorflow as tf n cpus 20 sess tf
  • 使用编号规则定义 Firestore 文档字段值

    我想将用户信息及其 id 而不是文档 id 存储在文档中 我想生成像 XYZ0001 这样的 id 特定格式 只要有新用户添加 最后 4 位数字就会自动增加 例如 XYZ0001 XYZ0002 之类的 我已经尝试过这个 return fi