引用 Firestore 集合中的最后一个文档

时间:2021-07-04 14:35:42

标签: java google-cloud-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)。

那有可能吗??

1 个答案:

答案 0 :(得分:0)

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

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

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

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