【发布时间】:2019-02-08 08:30:46
【问题描述】:
我有一个使用 Firestore 作为数据源的简单应用。在学习了谷歌关于如何构建更好的数据库的教程之后,我开始将我的对象分成多个表(或者他们如何称之为集合)并使用数据引用。
让我举一个简单的例子。假设我有两个集合(数据表)
- 购物类别
- 购物项目
逻辑是,在ShoppingItems 下我可以存储所有物品,无论类别如何(例如牛奶、面包、家禽、葡萄酒……),但在我的ShoppingCategories 中我创建产品类别(例如日记、水果, Meat, ...) 和属于他们的参考项目。
这是数据模型在 Flutter 中的样子:
class ShoppingCategory {
DocumentReference reference;
String title;
List<ShoppingItem> items;
}
class ShoppingItem {
DocumentReference reference;
String title;
}
我现在面临的问题是,如果我执行以下调用:
Firestore.instance.collection('shopping_categories').snapshot()
我确实会得到属性为items 的所有购物类别;但是它将只是DocumentReference 类型。为了让我检索这些 ShoppingItems 的详细信息,我需要额外致电Firestore(针对每个子项目)并索取他们的详细信息。
我的问题是:
有没有办法更有效地做到这一点?例如。如果我使用的是实体框架,我会在我的items 集合上调用.expand() 方法,它会动态获取所有必要的细节——所以在一次调用中我得到了所有的细节。我可以在 Flutter - Firestore 中做这样的事情吗?
【问题讨论】:
标签: firebase flutter google-cloud-firestore