我正在编写此代码是为了学习 Udemy 的 Flutter 课程。 我已经下载了这门课程,这就是我无法从那里获得帮助的原因。 我正在尝试实施 Firebase 身份验证,并且我已经完成了课程中给出的相同步骤,但不幸的是,我收到了这个错误。
class SignIn extends StatelessWidget {
const SignIn({Key? key, required this.onSignIn}) : super(key: key);
final void Function(User) onSignIn;
Future<void> _signInAnonymously() async {
try {
final anonymously = await FirebaseAuth.instance.signInAnonymously();
onSignIn(UserCredential.user); // the error is in this parameter
} on Exception catch (e) {
print(e.toString());
}
}
// There is more code too but the issue is in this one
}
答案 0 :(得分:0)
该错误是由 Null 安全引起的。
此功能最近已包含在 Flutter 中,因此您所关注的课程可能是指没有 Null 安全性的旧版本。
您可以在此处阅读文档:https://flutter.dev/docs/null-safety
答案 1 :(得分:0)
您的项目以零安全性运行。我猜 Udemy 课程还没有使用 Flutter 的这个功能。由于 Flutter 2.2 声音空值安全在新项目中默认启用。您应该查看此页面:https://dart.dev/null-safety
您可以通过在可能为空的字段后面添加感叹号来解决您的问题,如下所示:onSignIn(UserCredential.user!);
答案 2 :(得分:0)
需要通过 UserCredential 对象中的 user 参数检查 onSignIn 函数的 user 参数的类类型。
为了更清晰,您可以包含完整的代码。
或者只是这个文件的导入语句