有没有一种方法可以批量读取Firebase文档

时间:2020-01-03 03:45:24

标签: arrays firebase flutter google-cloud-firestore

我正在使用以Firebase为后端的Flutter开发移动应用程序。

我有一个收集用户信息的用户文档集合。字段之一是引用数组(另一个集合中的引用文档),我想在批处理之类的操作中使用该引用,然后允许读取所有文档。

我知道批处理只允许写入数据库,我的第二个选择是事务处理,它要求在读取之后进行写操作,这是我想要避免的。

是否有一种方法可以在一次操作中读取多个文档而无需使用事务处理?

2 个答案:

答案 0 :(得分:1)

Firestore不提供正式的批量读取API。正如弗兰克(Frank)在评论中提到的,有一种方法可以使用IN使用其ID从单个集合中获取多个文档。但是,所有文档都必须位于同一集合中,每个查询不能超过10个文档。您最好只对每个文档分别进行get(),因为IN查询有局限性,并且不能保证执行得比单独获取要快。两种解决方案都不能保证是“一致的”,因此在任何给定的时间点,任何一个获取的文档都可能比其他任何一种“新鲜”。

答案 1 :(得分:0)

Firestore 有一个 REST API,允许您使用可能是您需要的文档路径进行批量 GET。

https://firebase.google.com/docs/firestore/reference/rest/v1beta1/projects.databases.documents/batchGet