Ana*_*ari 2 firebase firebase-authentication flutter
我正在尝试使用 Firebase 实施电子邮件验证。它不会向诸如sample@gmail.com之类的Gmail地址发送验证电子邮件,但可以与临时邮件等其他电子邮件地址一起正常工作。我在观看 Johannes Milke 的教程时遇到了这个问题。
我无法理解为什么会发生这种情况。请帮忙。
验证页面代码
class VerifyEmailPage extends StatefulWidget {
const VerifyEmailPage({Key? key}) : super(key: key);
@override
State<VerifyEmailPage> createState() => _VerifyEmailPageState();
}
class _VerifyEmailPageState extends State<VerifyEmailPage> {
bool isEmailVerified = true;
Timer? timer;
@override
void initState() {
// TODO: implement initState
super.initState();
//User need to be created before
isEmailVerified = FirebaseAuth.instance.currentUser!.emailVerified;
if (!isEmailVerified) {
sendVerificationEmail();
timer = Timer.periodic(const Duration(seconds: 3), (timer) {
checkEmailVerified();
});
}
}
Future checkEmailVerified() async {
FirebaseAuth.instance.currentUser!.reload();
// user.reload;
setState(() {
isEmailVerified = FirebaseAuth.instance.currentUser!.emailVerified;
});
if (isEmailVerified) timer?.cancel();
}
@override
void dispose() {
// TODO: implement dispose
timer?.cancel();
super.dispose();
}
Future sendVerificationEmail() async {
try {
final user = FirebaseAuth.instance.currentUser;
// await firebase.auth().currentUser.sendEmailVerification();
await user
?.sendEmailVerification()
.then((value) => print("Verification sent! to ${user.email}"));
} on Exception catch (e) {
// TODO
showErrorAlert(context, e.toString());
}
}
AuthService _auth = AuthService();
@override
Widget build(BuildContext context) => isEmailVerified
? HomeScreen(selectedIndex: 0)
: Scaffold(
appBar: AppBar(
title: Text("Verify your email"),
centerTitle: true,
elevation: 0,
backgroundColor: kPrimaryColor,
leading: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () async {
await _auth.signOut();
},
),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.center,
children: const [
Text("Verification email is sent to you!!",
// textAlign: TextAlign.center,
style: TextStyle(fontSize: 20.0),
textAlign: TextAlign.center),
],
));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2002 次 |
| 最近记录: |