angular - 获取 Firebase Firestore 集合中最后创建的文档
问题描述
有什么方法可以在 Firebase Firestore 集合中获取最后创建的文档?我的要求是当用户签名时,我必须在名为“历史”的集合中添加一个文档;当用户退出时,我想用一个名为“signout”的字段更新该文档;因此,如果我得到最后添加的文档,则很容易更新。有没有办法做到这一点?
解决方案
有什么方法可以在 Firebase Firestore 集合中获取最后创建的文档?
就在这里!实现这一点的最简单方法是为date
集合中的每个对象添加一个属性,然后根据这个新属性降序查询它并调用limit(1)
函数。而已!
正如@eyyo 在他的评论中提到的,这是一个具体的例子。假设您的数据库架构如下所示:
Firestore-root
|
--- history (collection)
|
--- docId (document)
|
--- date: June 24, 2020 at 6:46:25 PM UTC+3
|
--- //Other properties
这是必需的查询:
this.historyRef = afs.collection<History>('history', ref => ref.orderBy('date', 'desc').limit(1));
this.history = this.historyRef.snapshotChanges().map(actions => {
return actions.map(a => {
const data = a.payload.doc.data() as Hisotory;
const docId = a.payload.doc.id;
return { docId, ...data };
});
});
推荐阅读
- ios - GMSPlaceRectangularLocationOption iOS swift
- django - 如何在Django中上传多个图像
- python - Python 中的赋值操作是否有布尔值?
- python - 附加熊猫数据框问题
- c# - 统一字符串替换
- windows - PostgreSQL 进程使用大量私有内存
- javascript - 在检索数据时显示加载动画(Angular 10)
- multidimensional-array - 如何为 cuda 内核创建一个临时 2D 变量
- http-post - ASP.NET Core - 处理来自 HTTP Post 请求的数据
- mysql - MySQL 员工在一个时间范围内的总支出