java - 参考 Firestore 集合中的最后一个文档
问题描述
我最近了解到,我们实际上可以设置 FieldValue 来引用文档。但我真正好奇的是,是否也可以引用 Collection 的最后一个文档。
例如,我有一个如下所示的数据结构:
Chat
CHAT_ID
last : (Reference To the Last Document in the "Messages" Collection)
Messages
MSG_ID_001
msg : Some Message
MSG_ID_002
msg : Some Message
MSG_ID_003
msg : Some Message
所以现在我想设置引用,使其始终引用消息集合中的最后一个文档(在本例中为 MSG_ID_003)。
那么有可能吗??
解决方案
拥有一个引用集合的最后一个字段的字段,并自动更新该引用以使其始终指向最后一个字段,这在 Firestore 中是不可能的。
我建议您在需要时进行查询以获取最后的文档参考。但是,如果您想这样做,作为一种解决方法,您可以自己更新该字段,并且有几种方法可以做到这一点:
- 每次将新字段添加到要使用更新查询引用的集合时,都从代码中更新它。
- 每次对集合进行更改时,使用
onCreate
或触发器创建云函数以更新引用字段。onWrite
请注意,这种方法虽然最可靠,但如果您必须经常更新该字段,可能会非常昂贵。
您可以观看此视频,该视频解释了 Firestore 中使用的参考字段。
推荐阅读
- terraform - Terraform比较键两个不同的地图并复制值
- javascript - 如何解决“断言要求调用目标中的每个名称都使用显式类型 annotation.ts(2775) 声明”?
- java - 返回字符串中的字符,返回辅音问题
- python - 尽管有合适的版本可用,但“找不到满足要求的版本”使用 Pip 安装组件
- python - 无法在 WSL UBUNTU-20.04 上的 miniconda 上启动 spyder
- java - Kotlin 的 Java 版本是否都有相同的限制?
- python - 如何为单个函数创建 3 个单元测试
- python - 在 VSCode 中将 .ipynb 转换为 .py 的最佳方法
- kubernetes - 是否可以在 Kubernetes 上更改服务的 DNS 记录
- java - 从日期字符串中获取月份