获取 Firebase Firestore 集合中最后创建的文档

pep*_*epe 3 firebase angular google-cloud-firestore

有没有办法在 Firebase Firestore 集合中获取上次创建的文档?我的要求是当用户签名时,我必须在名为“history”的集合中添加一个文档;当用户退出时,我想使用名为“退出”的字段更新该文档;因此,如果我获得最后添加的文档,则很容易更新。有没有办法做到这一点?

Ale*_*amo 16

有没有办法在 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
Run Code Online (Sandbox Code Playgroud)

这是必需的查询:

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 };
    });
});
Run Code Online (Sandbox Code Playgroud)