Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每个回路的颤振不';不要等待其他firebase读数的结果_Firebase_Flutter_Firebase Realtime Database - Fatal编程技术网

每个回路的颤振不';不要等待其他firebase读数的结果

每个回路的颤振不';不要等待其他firebase读数的结果,firebase,flutter,firebase-realtime-database,Firebase,Flutter,Firebase Realtime Database,这是我的密码 data.forEach((index, data) async { String id=data['LampId']; print(id); var _firebaseRef2 = FirebaseDatabase.instance.reference().child('lamps').child(id); await _firebaseRef2.once().then((DataSnapshot snapshot) asy

这是我的密码

data.forEach((index, data) async { 
                 
 String id=data['LampId'];
 print(id);
var _firebaseRef2 = FirebaseDatabase.instance.reference().child('lamps').child(id);

     await  _firebaseRef2.once().then((DataSnapshot snapshot) async {
           print(snapshot.value["Owner"]);
                              
                 if(snapshot.value["Owner"]==Data.userid){
                       item.add({"key": index, ...data});
                    }else{
                        print("no");
                           }
});
                  
                 
                            
                      
                  });


return ListView.builder (
                        
                        itemCount: item.length,
                        itemBuilder: (context, index) {
                Display Cards
我想检查该id是否为所有者,然后添加到列表中,但碰巧foreach id先打印,然后再进行其他firebase检查

如果我解释得更精确些,这就是打印出来的结果

I/flutter (15436): lamp002
I/flutter (15436): lamp003
I/flutter (15436): lamp001
I/flutter (15436): 001
I/flutter (15436): 002
I/flutter (15436): no
I/flutter (15436): 001


正如您所看到的,所有lap ID都是先打印的,因此它忽略了对用户ID的检查并添加到列表中


换句话说,当项目add处于if状态时,它不添加任何内容,而如果我将其放在firebaseRef2之外,它将添加所有灯列表

使用wait告诉Flatter等待:

await _firebaseRef2.once().then((DataSnapshot snapshot) async

我已经尝试过将id添加到列表中,但是我使用了return ListView.builder,我认为在添加列表之前它已经被传递了