Попробуйте следующее:
Future<List<DataColumn>> getDataColumnTest() async{
dbutils db = dbutils();
List<DataColumn> returnDC = List<DataColumn>();
AuthResult results = await FirebaseAuth.instance.signInWithEmailAndPassword(email: 'XXX@gmail.com', password: 'WOWOW');
DocumentSnapshot ds = await Firestore.instance.document('Settings' + '/' + 'hey').get();
ds.data.map((f, d) {
DataColumn dc =
DataColumn(label: Text(f.toString()), tooltip: d.toString());
returnDC.add(dc);
});
});
});
return returnDC;
}
API является асинхронным, поэтому вам нужно использовать async
и await
для ожидания получения данных, а затем вы можете вернуть список.
Поскольку это метод build
, вы можете использовать FutureBuilder
:
FutureBuilder(
future:
getDataColumnTest(),
builder: (BuildContext context, AsyncSnapshot<DataColumn> snapshot) {
if (snapshot.hasData) {
return Text(snapshot.data);
} else if (snapshot.hasError) {
return Text("${snapshot.error}");
}
// By default, show a loading spinner.
return CircularProgressIndicator();
},
)