FLutter FirebaseAuth电子邮件验证



现在我尝试编写自己的android应用程序。因此,我想创建一个基于电子邮件和密码的登录/注册,其中还包括一个电子邮件验证服务。问题是,每次我在模拟器中启动它,并尝试注册,它会发生一个nosuchmethod错误告诉我getter email或getter sendEmailVerification()

请查看我的验证码,告诉我哪里做错了。

import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'home.dart';



class Verification extends StatefulWidget {
@override
_VerificationState createState() => _VerificationState();
}
class _VerificationState extends State<Verification> {
final auth = FirebaseAuth.instance;
User user;
Timer timer;
String email =  FirebaseAuth.instance.currentUser.email.toString(); 

Future<void> verificateEmail() async{
User user = auth.currentUser;
if (user != null) {
await user.sendEmailVerification();}
timer = Timer.periodic(Duration(seconds: 2), (timer) {checkEmailVerified(); });
}






@override
void dispose() {
timer.cancel();
super.dispose();
}


@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text("draicksmail sent to ${user.email}"),
),
);
}


Future<void> checkEmailVerified() async{
user = auth.currentUser;
await user.reload();
if (user.emailVerified){
timer.cancel();
Navigator.of(context).pushReplacement(MaterialPageRoute(builder: (context)=> Home()));
}
}



}

所以这个错误是由于auth.currentUser返回null造成的。因此,试图在null上执行一个方法会抛出一个错误,因为null上不存在任何东西。

您是否将以下内容添加到您的main()方法中?

await Firebase.initializeApp();
runApp(Home());

查看以下指南获取更多详细信息https://firebase.google.com/docs/flutter/setup?platform=android

最新更新