У меня есть простое приложение Flutter, которое преобразует строковое значение, разделенное символами канала ... случайно, это имена песен (например: 'Rudolf | Jingle Bells | White Christmas') в ListView ... с названиями песен, являющимися ListTiles,Длинная история о том, почему я делаю это так ... пожалуйста, потерпите меня.У меня есть коллекция Firestore под названием «наборы», а в наборах у меня есть документ с ключом SET01.Затем в SET01 у меня есть одно поле под названием «песни» ... текстовое поле, содержащее песни, разделенные трубами.Я вызываю getSetList (), чтобы получить текстовое поле из Firestore.Кажется, я могу получить значение 'songs' внутри set01DocRef.get (). Then ((снимок) ....
Но я не могу передать это значение из .then () ивернуться к функции, чтобы передать ее обратно вызывающему виджету.
Любая помощь очень ценится.
ER
String getSetList () {
String songList = 'Loading.....';
DocumentReference set01DocRef = Firestore.instance.collection('sets').document('SET01');
set01DocRef.get().then((snapshot){
print('String songList inside .then() before assignment: ' + songList); //Wagon Wheel|Her Diamonds|Waterfalls
print('Snapshot value of songs: ' + snapshot['songs']); //Wagon Wheel|Her Diamonds|Waterfalls
songList = snapshot['songs'];
print('String songList inside .then() after assignment: ' + songList); //Wagon Wheel|Her Diamonds|Waterfalls
});
print('Bueller? Bueller??');
print('String songList outside of .then(): ' + songList);
return songList;
}
Вывод:
flutter: Bueller? Bueller??
flutter: String songList outside of .then(): Loading.....
Reloaded 0 of 424 libraries in 442ms.
flutter: String songList inside .then() before assignment: Loading.....
flutter: Snapshot value of songs: Wagon Wheel|Her Diamonds|Waterfalls
flutter: String songList inside .then() after assignment: Wagon Wheel|Her Diamonds|Waterfalls
** Функция пропускает сразу после .get () и немедленного возврата ... Я знаю, что это, вероятно, связано с принуждением системы ждать, пока это значение вернется из FS ... но я незнать, как справиться с этим.