【发布时间】:2019-05-17 22:21:14
【问题描述】:
我有一个简单的 Flutter 应用程序,它将由管道字符分隔的字符串值...恰好是歌曲名称(即:'Rudolf|Jingle Bells|White Christmas')到 ListView...其中歌曲名称是 ListTiles .关于我为什么要这样做的长篇大论……请多多包涵。我有一个名为“sets”的 Firestore 集合,在集合中我有一个带有 SET01 键的文档。然后在 SET01 中,我有一个名为“歌曲”的字段......一个包含由管道分隔的歌曲的文本字段。我调用 getSetList() 从 Firestore 检索文本字段。我似乎可以在 set01DocRef.get().then((snapshot)....
中获得“歌曲”的值但我似乎无法将该值从 .then() 传递并返回给函数以将其传递回调用小部件。
非常感谢任何帮助。
呃
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 返回有关...但我没有不知道怎么处理。
【问题讨论】:
标签: dart flutter google-cloud-firestore