Flutter - Dart: espera un Cada finaliza

Intento modificar una cadena usando datos en cada nodo que recupero de la base de datos de Firebase, y luego escribir un archivo con la cadena modificada (llamada "contenido").

Esto es lo que probé:

// 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);

Resultado:

"prueba" se muestra antes de que finalice forEach.

Encontré que podemos hacer en Dart https: //groups.google.com/a/dartlang.org/forum/#! topic / misc / GHm2cKUxUDU):

await Future.forEach

pero en mi caso si lo hago: espera Future.response.value.forEach (suena un poco raro)

entonces obtengo:

Getter no encontrado: 'respuesta'. aguarde Future.response.value.forEach ((jsonString) async

¿Cómo esperar a que CADA finalice (con "contenido" modificado) antes de escribir el archivo con nuevo contenido?

¿Alguna idea

Respuestas a la pregunta(3)

Su respuesta a la pregunta