Flutter SQLlite 无法将参数类型分配给参数类型"字符串"错误'Future<String>'



我已经复制并修改了这个官方教程中的一些代码:https://flutter.dev/docs/cookbook/persistence/sqlite
我的插入版本如下所示:

final Future<Database> database = openDatabase(
join(await getDatabasesPath(), 'user_database.db'),
onCreate: (db, version) {
return db.execute(
"CREATE TABLE users(uid INTEGER PRIMARY KEY, display name TEXT, email TEXT)",
);
},
version: 1,
);
Future<void> insertUser(User user) async {
final Database db = await database;
await db.insert(
'users',
user.toMap(),
conflictAlgorithm: ConflictAlgorithm.replace,
);
final u = User("_displayName", "_email", "_ownerOfClub", "_password", "_id");
await insertUser(u);

但它为 await getDatabasesPath(( 部分显示了一个错误:对于 await,它说:意外的文本 'await',对于 getDatabasesPath((:参数类型"Future"不能分配给参数类型"String"。

试试这种方法


Future<Database> database ;
void openDBFunction() async {
var databasesPath  = await getDatabasesPath();
String path = join(databasesPath, 'demo.db');
// open the database
database = await openDatabase(path, version: 1,
onCreate: (Database db, int version) async {
// When creating the db, create the table
await db.execute(
'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)');
});
}

void openDBFunction() async {
// open the database
database = await openDatabase(join(await getDatabasesPath(), 'demo.db'), version: 1,
onCreate: (Database db, int version) async {
// When creating the db, create the table
await db.execute(
'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)');
});
}

最新更新