【发布时间】:2019-12-03 04:22:08
【问题描述】:
我的想法: 我想在 Flutter 中使用 Firebase Auth 插件来注册用户。 但在他们可以访问应用程序之前,他们必须验证他们的电子邮件地址。 因此,我在注册后将 Firebase 用户推送到验证屏幕。这只是一个加载屏幕,告诉用户他必须验证他的电子邮件。
但现在:如果用户的电子邮件已通过验证并将他(如果为真)发送到主屏幕,我该如何持续收听?
我是 Flutter 的新手,我不知道是否必须使用 Streams 或 Observables 或 while 循环或 setState() 或其他东西来进行这种布尔检查。而且我也不知道如何设置解决方案。
这是我注册用户的基本代码:
import 'package:cloud_firestore/cloud_firestore.dart';
import 'dart:async';
class AuthService {
final FirebaseAuth _auth = FirebaseAuth.instance;
final Firestore _db = Firestore.instance;
Future<FirebaseUser> get getUser => _auth.currentUser();
Stream<FirebaseUser> get user => _auth.onAuthStateChanged;
Future<FirebaseUser> edubslogin(String email, String password) async {
try {
final FirebaseUser user = await _auth.createUserWithEmailAndPassword(
email: email,
password: password,
);
await user.sendEmailVerification();
//email verification somewhere here
updateUserData(user);
return user;
} catch (error) {
print(error);
return null;
}
}
我试过了:
if (user.isEmailVerified == true) {
//go to Homescreen
return true;
} else {
//show verification screen(loading spinner)
return false;
}
但我没有从 isEmailVerified 中得到布尔值 true。
我该怎么办?
【问题讨论】:
标签: firebase flutter dart firebase-authentication state-management