Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro database

Ao efetuar os retornos a ide acusa erro indicando que pode retornar nulo, para que corrija o erro passei os metodos para nulos, porem ao tentar salvar acaba retornando erro: Unhandled Exception: type '(Database?) => Future?' is not a subtype of type '(Database?) => FutureOr<int?>'

Future<Database?> createDatabase() { return getDatabasesPath().then((dbPath) { final String path = join(dbPath, 'bytebank.db'); openDatabase(path, onCreate: (db, version) { db.execute('CREATE TABLE contacts(' 'id INTEGER PRIMARY KEY, ' 'name TEXT, ' 'account_number INTEGER)'); }, version: 1); }); }

Future<int?> save(Contact contact) { return createDatabase().then((db) { final Map<String, dynamic> contactMap = Map(); contactMap['name'] = contact.name; contactMap['account_number'] = contact.accountNumber;

return db?.insert('contacts', contactMap);

}); }

Alguém, tem ideia de solução?

2 respostas
solução!

Você esqueceu de dar o return ao chamar o openDatabase, por isso que ele reclama que pode retornar nulo. Tente isso, lembre de tirar o '?' da Future

Future<Database> 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);
    });
  }

Obrigado André, resolveu.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software