Поскольку readData () является An AsyncFunction ,
Добавление ключевого слова await перед readData () приведет к тому, что readData () будет fini sh, и после этого он напечатает Однако вы не можете этого сделать, так как StreamBuilder ожидает возврата типа Widget.
Итак, что вы можете сделать, это. возможно, измените свои readData, чтобы вернуть Future boolean readData ();
Future<bool> readData() async {
final FirebaseUser user = await _auth.currentUser();
final userid = user.uid;
DBRef.child(userid).once().then((DataSnapshot data){
print(userid);
if(data.value!=null)
{
print(data.key);
print(data.value);
return true;
}
else{
print('User not found');
return false;
}
});
}
, и вы назовете его:
readData().then((value)
{
if (value ==true)
return Widget
else
return Widget;
}
);
Надеюсь, что это поможет.