上下文: 假设我有一个应用程序,显示要显示的餐厅列表和 100000 家餐厅。 每家餐厅都属于一个 category.eg:印度。 我想向用户显示他们要查看的各个类别。
方法 1:将所有餐厅添加到集合中,并将文档 ID 保存在属于指定类别的数组中。因此,如果我想要所有印度餐厅,我只会得到包含所有印度餐厅 ID 的数组印度并加载它们。
方法 2:将所有餐厅添加到集合中,并为每个文档指定一个类别。因此,当用户需要印度餐厅列表时,我只会使用 where(( 来过滤它们。 在这种方法中,Firestore 是否向我收取所有 100000 次文档读取的费用,这种方法是否有效?
有没有更好的方法来解决这个问题?
它们是相同的。
Firestore 不对与查询不匹配的文档收费。使用筛选器匹配查询中的文档时,只需对从查询返回的文档收取读取费用。
使用任一方法并选择最适合您的方法。