【问题标题】:function returns null before assigning value函数在赋值之前返回 null
【发布时间】:2020-09-08 22:16:15
【问题描述】:

您好,谁能帮我解决这个问题?该函数不会等到从数据库中获取数据。它只是返回空对象..

Future<Admin> loginVerification() async {
  Admin admin;
  _databaseReference.child("admin").onValue.listen((event){
   admin= Admin.fromSnapshot(event.snapshot);
 });
 return admin;
}

【问题讨论】:

  • 使用await loginVerification()loginVerification().then(...)
  • 函数调用期间?
  • 先生,我按照你说的试过了,但它只返回 null ..
  • var event = await _databaseReference.child("admin").onValue.first; return Admin.fromSnapshot(event.snapshot);

标签: firebase flutter dart flutter-test


【解决方案1】:

你不能在这里等待作为不返回 Future 的方法,你必须这样做的方式就像

return _databaseReference.child('admin').onValue.firstWhere((element) => Admin.fromSnapshot(event.snapshot)); 

【讨论】:

  • 是的先生,有什么解决办法吗?
  • 在这一行下面做你的事情 admin= Admin.fromSnapshot(event.snapshot);
  • 先生,我正在使用 bloc 来管理状态,并且我必须将值返回给 bloc,以便根据验证通知应用程序关于下一个状态。
  • 我必须返回一些值,但如果在验证之前先返回 null
  • @YogishShenoy:编辑了答案,希望对你有用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-16
  • 2019-09-29
  • 1970-01-01
  • 2011-01-11
  • 1970-01-01
  • 2020-08-26
  • 2019-01-05
相关资源
最近更新 更多