首页 > 解决方案 > 参考 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)。

那么有可能吗??

标签: javagoogle-cloud-firestore

解决方案


拥有一个引用集合的最后一个字段的字段,并自动更新该引用以使其始终指向最后一个字段,这在 Firestore 中是不可能的。

我建议您在需要时进行查询以获取最后的文档参考。但是,如果您想这样做,作为一种解决方法,您可以自己更新该字段,并且有几种方法可以做到这一点:

  • 每次将新字段添加到要使用更新查询引用的集合时,都从代码中更新它。
  • 每次对集合进行更改时,使用onCreate或触发器创建云函数以更新引用字段。onWrite请注意,这种方法虽然最可靠,但如果您必须经常更新该字段,可能会非常昂贵。

您可以观看视频,该视频解释了 Firestore 中使用的参考字段。


推荐阅读