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

Categories

0 votes
586 views
in Technique[技术] by (71.8m points)

javascript - Flutter: doing sthg asynchronous while reading Firebase data

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

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

1 Answer

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...