我正在从一本似乎过时的书中学习flutter,实现这段代码的现代方法是什么?

k2fxgqgv  于 2022-12-24  发布在  Flutter
关注(0)|答案(1)|浏览(79)

//VS代码读取错误:无法无条件调用该函数,因为它可以为“null”。

Future<void> sendEmailVerification() async {
    User user = await _firebaseAuth.currentUser();
    user.sendEmailVerification();
  }

'
第一个月

Future<String> currentUserUid() async {
    User user = await _firebaseAuth.currentUser!();
    return user.uid;
  }
dy1byipe

dy1byipe1#

Flutter告诉您可能存在空值。
检查currentUser()方法的返回值是什么,它可能是User?(这个值可以是null)。如果是这样,你应该这样编写它:

Future<String> currentUserUid() async {
  User? user = await _firebaseAuth.currentUser(); // if the return is a null value user will be null
  return user!.uid;
}

在这里,您应该考虑如果用户为null,您希望返回什么,或者如果使用'!'为null,则忽略并运行错误。
如果要控制空大小写:

Future<String> currentUserUid() async {
  User? user = await _firebaseAuth.currentUser(); // if the return is a null value user will be null
  return user.uid ?? 'No user right now';
}

当第一个为空时,“??”返回右边的部分。
我想你是对的,这本书已经过时了,因为零安全在Flutter中相对较新(2021年3月)

相关问题