Então, já modifiquei tanto o código que agora já não sei mais o que realmente está acontecendo. O erro parece que é um parâmentro nulo no databaseApp, eu tinha colocado nulo no ID, pois ele estava com erro se não colocasse o nulo. Mas depois eu comentei essa linha de código e continuou dando o mesmo erro. Vou colocar aqui, se conseguir descobrir o erro vai ser ótimo, mas vou fazer tudo de novo passo a passo. A única coisa que fico chateada é que muitos comandos já estão em desuso, ai fica complicado para quem está começando do zero, pois toda essa formação flutter já está desatualziada. Mas continuo na luta aqui. Segue o código:
import 'package:bytebank1/models/contact.dart';
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';
Future createDatabase() {
return getDatabasesPath().then((dbPath) {
final String path = join(dbPath, 'bytebank.db');
return openDatabase(path, onCreate: (db, version) {
db.execute('CREATE TABLE contacts ('
'id INTEGER PRIMARY KEY, '
'name TEXT, '
'account_number INTEGER)');
}, version: 1);
});
}
Future save(Contact contact) {
return createDatabase().then((db) {
final Map<String, dynamic> contactMap = Map();
//contactMap['id'] = contact.id ?? 0;
contactMap['name'] = contact.name;
contactMap['account_number'] = contact.accountNumber;
return db.insert('contacts', contactMap);
});
}
Future<List> findAll() {
return createDatabase().then((db) {
return db.query('contacts').then((maps) {
final List contacts = [];
for (Map<String, dynamic> map in maps) {
final Contact contact =
Contact(map['id'], map['name'], map['account_Number'],);
contacts.add(contact);
}
return contacts;
});
});
}