Я использую StreamBuilder во Flutter, чтобы получать обновления коллекции firestore users
в реальном времени. Я хочу фильтровать пользователей по возрасту.
StreamBuilder<List<User>>(
stream: UserList(minAge, maxAge),
builder: (context, snapshot) {
print(snapshot.data);
}
);
По сути, базовый запрос к хранилищу данных - это простой where
запрос.
FirebaseFirestore.instance
.collection('users')
.where('age', isGreaterThan: minAge)
.where('age', isLessThan: maxAge)
.snapshots();
Каждый раз, когда пользователь изменяет значения minAge
или maxAge
в пользовательском интерфейсе, StreamBuilder получает эти новые параметры и обновляется. Это вызывает каждый раз новый запрос? Если да, будет ли этот запрос каждый раз извлекать все объекты из базы данных или он будет извлекать только новые объекты, а остальные из моего локального кеша?