Flutter - Dart: espere um poucoCada fim
Tento modificar uma string usando dados em cada nó que recupero do banco de dados do Firebase e, em seguida, gravar um arquivo com a string modificada (chamada "conteúdo"
Aqui está o que eu tentei:
// Retrieve initial content from Firebase storage
var data = await FirebaseStorage.instance.ref().child("...").getData(1048576);
var content = new String.fromCharCodes(data);
// Edit content with each node from Firebase database
final response = await FirebaseDatabase.instance.reference().child('...').once();
response.value.forEach((jsonString) async {
...
// cacheManager.getFile returns a Future<File>
cacheManager.getFile(signedurl).then((file){
// Modify content
content=content.replaceAll('test',file.path);
});
});
// Finally write the file with content
print("test");
final localfile = File('index.html');
await localfile.writeAsString(content);
Result:
"test" é mostrado antes que o forEach termin
Descobri que podemos fazer em Dart https: //groups.google.com/a/dartlang.org/forum/#! topic / misc / GHm2cKUxUDU):
await Future.forEach
mas no meu caso, se eu fizer: aguarde Future.response.value.forEach (soa um pouco estranho)
então eu recebo:
Getter não encontrado: 'resposta'. aguardam Future.response.value.forEach ((jsonString) async
Como esperar que cada um termine (com "conteúdo" modificado) antes de gravar o arquivo com novo conteúdo?
Qualquer ideia