Я должен сделать несколько вызовов API: я получаю ошибку PlatformException(Error performing get, Failed to get document because the client is offline., null)
Я вызываю метод в didChangeDependencies
, потому что я не могу использовать провайдера в initState
. Я не уверен, что делать с ошибкой. Отладчик указывает на getLegislatures()
. Мне интересно, правильно ли я использую async / await, потому что я подозреваю, что есть проблема с чтением данных (getLegislatures) после записи данных setElcectorate()
? Вот метод, который выполняет вызовы:
Future<List<LegTile>> getPlaces(BuildContext context) async {
final database = Provider.of<Database>(context, listen: false);
await database.setElcectorate(suburb, postcode); //Call to server and write to firestore...all ok
final result = await database.getElectorates(); // a get from Firestore..returns the data ok.
final legislatures = await database.getLegislatures(result); //problem here!!
return legislatures;
}
, а для полноты getLegislatures()
метод
Future<List<LegTile>> getLegislatures(List<Electorate> elecs) async {
List<LegTile> legs = [];
for (var elec in elecs) {
final snap1 = await elec.c1District.get();
print(snap1.data);
final snap2 = await elec.c2District.get();
print(snap2.data);
final snap3 = await elec.legislature.get();
print(snap3.data);
final district1 = District.fromJson(snap1.data);
final district2 = District.fromJson(snap2.data);
final legislature = Legislature.fromJson(snap3.data);
final LegTile legTile = LegTile(
district1: district1, district2: district2, legislature: legislature);
legs.add(legTile);
}
return legs;
}