我如何在 Sembast 记录中收听地图内的单个值?
How do I listen to a single value inside a map within Sembast record?
文档讨论了收听记录,但我如何收听该记录中的单个字段?假设记录包含 map.
假设我有一个 User
class 如下:
class User {
final String uid; // used as key in Sembast
final String name;
bool isVerified;
/// Used to store data to Sembast
Map<String, dynamic> toMap() => {
'uid': uid,
'name': name,
'isVerified': isVerified,
};
}
当我这样保存到本地时:
final _store = stringMapStoreFactory.store('userStore');
// Store data:
await _store.record(user.uid).put(database, user.toMap());
然后我想在页面的某处监听 isVerified
字段的更改,而不是获取整个 User
信息。我该怎么做?
因为 _store.record(user.uid).onSnapshot(database)
returns Stream<RecordSnapshot>
User
class.
谢谢
与 firestore 类似,您只能监听整个记录更改(或存储中的查询),而不能监听记录中的单个字段更改。作为旁注,获取“完整”记录不会花费太多,该记录已经准备好在内存中使用。
文档讨论了收听记录,但我如何收听该记录中的单个字段?假设记录包含 map.
假设我有一个 User
class 如下:
class User {
final String uid; // used as key in Sembast
final String name;
bool isVerified;
/// Used to store data to Sembast
Map<String, dynamic> toMap() => {
'uid': uid,
'name': name,
'isVerified': isVerified,
};
}
当我这样保存到本地时:
final _store = stringMapStoreFactory.store('userStore');
// Store data:
await _store.record(user.uid).put(database, user.toMap());
然后我想在页面的某处监听 isVerified
字段的更改,而不是获取整个 User
信息。我该怎么做?
因为 _store.record(user.uid).onSnapshot(database)
returns Stream<RecordSnapshot>
User
class.
谢谢
与 firestore 类似,您只能监听整个记录更改(或存储中的查询),而不能监听记录中的单个字段更改。作为旁注,获取“完整”记录不会花费太多,该记录已经准备好在内存中使用。