I've been working with Database connection in Flutter using Sqflite package. Right now I'm facing issue with mapping a list from a Future Function as return value to my Question controller.
While trying to call the function into map, this error occurs
List<Question> _questions = DbConn().getQues()
.map(
(question) =>
Question(
id: question['id'],
question: question['question'],
options: question['options'],
answer_index: question['answer_index']),
).toList();
This is the where error occurs,
Future<List<Map>> getQues() async {
String databasesPath = await getDatabasesPath();
Directory documentsDirectory = await getApplicationDocumentsDirectory();
// Directory documentsDirectory = (await getDatabasesPath()) as Directory;
print(documentsDirectory.uri);
String path = join(documentsDirectory.path, "Question.db");
debugPrint('pathDocumentDirectory: $path');
debugPrint('pathDatabasePath: $databasesPath');
_database = await openDatabase(
join(databasesPath, 'Question.db'),
onCreate: (db, version) {
debugPrint('called getQues function');
},
version: 1,
);
final Database db = _database;
// List<Map> list = await db.execute("SELECT * FROM ques",);
debugPrint('databaseGetQues: $database');
var onlyQues = DbConn.sample_data[0]['question'];
debugPrint("Latest onlyQues: $onlyQues");
for (int i = 0; i < DbConn.sample_data.length; i++) {
var onlyQuesFor = DbConn.sample_data[i]['question'];
debugPrint("Latest onlyQuesFor: $onlyQuesFor");
// }
var exId = DbConn.sample_data[i]['id'];
var exQuestion = DbConn.sample_data[i]['question'];
var exOptions = DbConn.sample_data[i]['options'];
var exAnswer_index = DbConn.sample_data[i]['answer_index'];
int insertId1 = await _database.rawInsert(
'INSERT INTO quesTable(id, question, options, answer_index) VALUES($exId, "$exQuestion", "$exOptions", $exAnswer_index)');
debugPrint('id1: $insertId1');
}
List<Map> list = await db.rawQuery('SELECT * FROM quesTable');
debugPrint('List: $list');
return list;
}