У меня проблема с моим приложением Flutter при вызове базы данных Isar.
У меня проблема с моим приложением Flutter при вызове базы данных Isar. У меня есть структура данных на одной странице, функции на другой и инструкция на моей странице main.dart по созданию двух пользователей, если они не существуют, но я не знаю, как исправить ошибки вadduser
,edituser
, иdeleteuser
функции.
@Collection()
class User {
Id? id = Isar.autoIncrement;
@Index(unique: true)
String? username;
String? password;
bool? isAdmin;
User({
this.id,
this.username,
this.password,
this.isAdmin,
});
}
страница main.dart содержит
@override
Widget build(BuildContext context) {
// Revisa si el usuario Admin existe
IsarQueries.getUserByUsername('admin').then((user) {
if (user == null) {
// Crea un nuevo usuario Admin
final admin = User()
..username = 'admin'
..password = '1234'
..isAdmin = true;
IsarQueries.addUser(admin);
}
});
// Revisa si el usuario mms existe
IsarQueries.getUserByUsername('mms').then((user) {
if (user == null) {
// Crea un nuevo usuario mms
final mms = User()
..username = 'mms'
..password = '4321'
..isAdmin = true;
IsarQueries.addUser(mms);
}
});
return Scaffold(
appBar: AppBar(
title: const Text('Fitgate App'),
),
body: LoginPage(),
backgroundColor: Colors.white,
);
}
}
в функциях страницы у меня есть:
static Future<void> addUser(User user) async {
await _isar.writeTxn((isar) async {
isar.user.put(user);
});
}
static Future<void> updateUser(User user) async {
await _isar.writeTxn((isar) async {
isar.user.put(user);
});
}
static Future<void> deleteUser(User user) async {
await _isar.writeTxn((isar) async {
isar.user.delete(user);
});
}
}
Но эти три функции дают мне следующую ошибку
Тип аргумента «Будущая функция (динамический)» не может быть присвоен типу параметра «Будущая функция()».
Я просмотрел руководства и выполнил пару руководств, и я избавился от множества ошибок, но теперь у меня есть только эти три.
1 ответ
Похоже, у тебя есть"isar"
как объявленная переменная в классе. Если это правда, это может сбить вас с толку.writeTxn
функция.
Если вы изменитеisar
на другой и повторите попытку.