Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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)

enter image description here

Any idea?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
564 views
Welcome To Ask or Share your Answers For Others

1 Answer

Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...