首页 > 解决方案 > 如何根据 ID 在 Sembast 中加载单个条目?

问题描述

我浏览 一堆Sembast的教程。教程提供了有关如何获取某个类(如 Cake)的所有项目的示例,但没有提供如何根据其 ID 加载特定项目的示例:

  @override
  Future<List<Cake>> getAllCakes() async {
    final snapshots = await _store.find(_database);
    return snapshots
        .map((snapshot) => Cake.fromMap(snapshot.key, snapshot.value))
        .toList(growable: false);
  }

如何为给定 ID 批量分配一个蛋糕?

标签: fluttersembast

解决方案


您可以使用store.record(key).get(db)

假设您的密钥是一个 int,这可能如下所示:

Future<Cake> getCake(int key) async {
  final snapshot = await _store.record(key).getSnapshot(_database);
  return snapshot != null ? Cake.fromMap(key, snapshot.value) : null;
}

更多信息(是的文档不是很好)在这里


推荐阅读