【发布时间】:2021-02-07 23:26:18
【问题描述】:
我在 Flutter 中使用 StreamBuilder 来获取 firestore 集合 users 的实时更新。我想按年龄过滤用户。
StreamBuilder<List<User>>(
stream: UserList(minAge, maxAge),
builder: (context, snapshot) {
print(snapshot.data);
}
);
基本上,底层的 firestore 查询只是一个简单的 where 查询。
FirebaseFirestore.instance
.collection('users')
.where('age', isGreaterThan: minAge)
.where('age', isLessThan: maxAge)
.snapshots();
每次用户在 UI 中更改 minAge 或 maxAge 的值时,StreamBuilder 都会接收这些新参数并进行更新。这是否每次都会导致新的查询?如果是,该查询是每次都从数据库中获取所有对象,还是只从我的本地缓存中获取新对象和其余对象?
【问题讨论】:
-
请编辑问题以显示实际进行查询的位置。您现在拥有的根本不直接涉及 Firestore。它被埋在 CarList 后面了吗?如果是这样,请编辑问题以显示该代码。
-
我编辑了整个示例以便更好地理解。
标签: flutter google-cloud-firestore stream-builder