Я не могу сохранить snapshot.data в базу данных через этаж во Flutter. Я написал сущность, дао и файл базы данных, построил базу данных и database.g.dart, но завершил работу успешно, но когда я попытался вставить функцию пользователя, оказалось ниже ошибка; Что мне не хватает? Есть ли что-нибудь, что можно сделать для записи будущих снимков.data, которых нет в [руководстве]? 1
Ошибка:
════════ Exception caught by gesture ═══════════════════════════════════════════════════════════════
The following NoSuchMethodError was thrown while handling a gesture:
The method 'insertUser' was called on null.
Receiver: null
Tried calling: insertUser(Instance of 'UserF')
Моя сущность:
import 'package:floor/floor.dart';
@entity
class UserF {
@PrimaryKey(autoGenerate: true)
final int id;
final String user;
final int overview;
UserF({this.id,
this.user,
this.overview,
@override
int get hashCode => id.hashCode ^ user.hashCode ^ overview.hashCode ;
@override
String toString() {
return 'UserF{id: $id, user: $user, overview: $overview}';
}
}
DAO:
import 'package:floor/floor.dart';
import 'entity.dart';
@dao
abstract class UserDao {
@Query('SELECT * FROM UserF')
Future<List<UserF>> findAllUsers();
@Query('SELECT * FROM UserF WHERE id = :id')
Stream<UserF> findUserById(int id);
@insert
Future<void> insertUser(UserF userF);
@delete
Future<int> deleteUser(UserF userF);
}
База данных:
import 'dart:async';
import 'package:floor/floor.dart';
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart' as sqflite;
import 'user_dao.dart';
import 'entity.dart';
part 'database.g.dart'; // the generated code will be there
@Database(version: 1, entities: [UserF])
abstract class AppDatabase extends FloorDatabase {
UserDao get userDao;
}
Связанные части на моем main.dart
Future<void> main() async{
WidgetsFlutterBinding.ensureInitialized();
final AppDatabase = await $FloorAppDatabase
.databaseBuilder('database.db')
.build();
runApp(MyApp());
}
....
floatingActionButton: FloatingActionButton(
onPressed: (){
final userf = UserF(user: snapshot.data.user, overview: snapshot.data.overview);
favoriteDao.insertUser(userf);
},
child: Icon(Icons.add),
....