Estou fazendo, paralelamente ao professor, a implementação de novas features dentro do projeto, por exemplo integrando o que aprendi na parte 1 do curso de Flutter com esse projeto atual.
O problema começa no banco de dados. Quando executo a tabela da parte de contatos, não tenho problemas. Já quando executo a parte de transferências, apresenta esse problema:
E/SQLiteLog( 8176): (1) no such table: transferencias in "SELECT * FROM transferencias"
The following _CastError was thrown building FutureBuilder<List>(dirty, state: _FutureBuilderState<List>#37465): The relevant error-causing widget was FutureBuilder<List> Null check operator used on a null value
package:bytebank/…/transferencia/lista_transferencia.dart:23 When the exception was thrown, this was the stack
#0 ListaTransferencias.build. package:bytebank/…/transferencia/lista_transferencia.dart:62
#1 _FutureBuilderState.build package:flutter/…/widgets/async.dart:775
#2 StatefulElement.build package:flutter/…/widgets/framework.dart:4691
#3 ComponentElement.performRebuild package:flutter/…/widgets/framework.dart:4574
#4 StatefulElement.performRebuild package:flutter/…/widgets/framework.dart:4746 ...
Já tentei diversas soluções que encontrei no StackOverflow mas nenhuma funcionou, estou quase mudando de banco de dados kkkkkkkkkk help me
Future<Database> createDatabase() {
return getDatabasesPath().then((dbPath) {
final String path = join(dbPath, "bytebank.db");
return openDatabase(path, onCreate: (db, version) async {
await db.execute("CREATE TABLE contatos("
"id INTEGER PRIMARY KEY, "
"nome TEXT, "
"numero_conta INTEGER)");
await db.execute("CREATE TABLE transferencias("
"idTrans INTEGER PRIMARY KEY, "
"valor TEXT, "
"numero_conta INTEGER");
}, version: 2);
});
}
Future<int> saveContato(Contato contato) {
return createDatabase().then((db) {
final Map<String, dynamic> contatoMap = Map();
contatoMap["nome"] = contato.nome;
contatoMap["numero_conta"] = contato.numeroConta;
return db.insert("contatos", contatoMap);
});
}
Future<int> saveTransfer(Transferencia transferencia) {
return createDatabase().then((db) {
final Map<String, dynamic> transferenciaMap = Map();
transferenciaMap["valor"] = transferencia.valor;
transferenciaMap["numero_conta"] = transferencia.numeroConta;
return db.insert("transferencias", transferenciaMap);
});
}
Future<List<Contato>> findAll() {
return createDatabase().then((db) {
return db.query("contatos").then((maps) {
final List<Contato> contatos = [];
for (Map<String, dynamic> map in maps) {
final Contato contato = Contato(
map["id"],
map["nome"],
map["numero_conta"],
);
contatos.add(contato);
}
return contatos;
});
});
}
Future<List<Transferencia>> findAllTransfer() {
return createDatabase().then((db) async {
// final a = await db.query("transferencias");
// print(a);
// return [];
return db.query("transferencias").then((maps) {
final List<Transferencia> transferencias = [];
for (Map<String, dynamic> map in maps) {
final Transferencia transferencia = Transferencia(
map["idTrans"],
map["valor"],
map["numero_conta"],
);
transferencias.add(transferencia);
}
return transferencias;
});
});
}
Meu código completo está nesse repositório: https://github.com/brnocorreia/flutter_studies_bytebank