我在Flutter应用中使用Sembast。我必须刷新商店中的所有数据,并且需要一种方法来删除商店中的所有文档。我看了看API,唯一能看到的就是要么获取所有密钥,然后在查找器中使用它们以删除它们,或者删除存储并重新创建它。不确定我是否忽略了支持该功能的内容?
答案 0 :(得分:0)
您可以使用sembast deleteAll
方法删除Database
中的所有记录,该方法将返回已删除键的列表,您可以在重新创建存储区的任何代码中使用这些键。
如果不需要重新创建存储,则可以使用sembast clear
方法删除存储中的所有记录。
答案 1 :(得分:0)
可以(并且应该)使用delete https://pub.dev/documentation/sembast/latest/sembast/StoreRef/delete.html方法。也许应该有一个明确的方法,简单地调用delete而不进行过滤,这类似于索引的db API ...
此处的一些信息:https://github.com/tekartik/sembast.dart/blob/master/sembast/doc/writes.md#delete-records
答案 2 :(得分:0)
我这样做了:
var receiptStore = intMapStoreFactory.store("receipts");
final database = await databaseFactoryIo.openDatabase(dbPath, version: 2,
onVersionChanged: (Database db, int oldVersion, int newVersion) async {
if (oldVersion == 1) {
await receiptStore.delete(db);
}
});
以便我通过删除数据库来“升级”数据库。
答案 3 :(得分:0)
这对我有用-:
db.close();
await databaseFactoryIo.deleteDatabase(_database.path);
db = null;