I try to do sthg asynchronous while reading data from Firebase and it doesn't work,
Here is what I tried :
Future<String> test() async {
var cacheManager = await CacheManager.getInstance(); //await here is OKAY
DatabaseReference firebaseRef = FirebaseDatabase.instance.reference();
firebaseRef.child('...').once().then((DataSnapshot snapshot) {
Map<dynamic,dynamic> map = snapshot.value;
map.forEach((key, url) {
print('$key: $url'); //OKAY
await precacheImage(new NetworkImage(url), context); //doesn't cache images
});
});
return "";
}
I get :
Error: Unexpected token 'await'.
I also tried :
Future<Map> test() async { //<---- added type Map
...
map.forEach((key, url) async { //<--- added async
//var file = await cacheManager.getFile(url);
await precacheImage(new NetworkImage(url), context); //same, cache doesn't work
});
but I get :
E/flutter ( 3971): #1
__InternalLinkedHashMap&_HashVMBase&MapMixin&_LinkedHashMapMixin.forEach
(dart:collection/runtime/libcompact_hash.dart:370:8)
Any idea?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…