我如何在 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 类似,您只能监听整个记录更改(或存储中的查询),而不能监听记录中的单个字段更改。作为旁注,获取“完整”记录不会花费太多,该记录已经准备好在内存中使用。