繁体   English   中英

使用 Flutter 和 Firestore 中的新数据更新 StreamBuilder

[英]Updating a StreamBuilder with new data in Flutter and Firestore

我在 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 中更改minAgemaxAge的值时,StreamBuilder 都会收到这些新参数并进行更新。 这是否每次都会导致新的查询? 如果是,这个查询是每次都从数据库中获取所有对象,还是只从我的本地缓存中获取新对象和 rest?

是的,每次 minAge 或 maxAge 更改时,您的代码都会进行新查询。 无法使用动态更改的过滤器更新查询。 除非应用程序处于离线状态,否则查询不会使用缓存,或者您仅将查询定向到缓存(这不是一个好主意,除非您知道所有可能的文档都已缓存)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM