метод:

аюсь изменить строку, используя данные в каждом узле, который я извлекаю из базы данных Firebase, а затем записать файл с измененной строкой (называемой «содержимым»).

Вот что я попробовал:

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

Результат:

«test» отображается перед завершением forEach.

Я обнаружил, что мы можем сделать в дартс (https://groups.google.com/a/dartlang.org/forum/#!topic/misc/GHm2cKUxUDU):

жду Future.forEach

но в моем случае, если я это сделаю: жду Future.response.value.forEach (звучит немного странно)

тогда я получаю:

Получатель не найден: «ответ». await Future.response.value.forEach ((jsonString) async {

Как ждать, что forEach заканчивается (с измененным «контентом»), прежде чем писать файл с новым контентом?

Любая идея?

Ответы на вопрос(3)

Ваш ответ на вопрос