为什么用户的电子邮件总是被验证?
我不知道为什么用户电子邮件仍然验证和重新加载功能返回真,即使我不验证电子邮件,但我收到邮件。
import "package:firebase_auth/firebase_auth.dart";
import "package:firebase_core/firebase_core.dart";
import "package:flutter/material.dart";
import "package:my_chat_app/View/pages/home.page.dart";
import "package:my_chat_app/View/pages/login.page.dart";
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: const FirebaseOptions(
apiKey: "AIzaSyBKZ_8PVfbb_VwHw4P8yTMcFOH6zoM_oZE",
appId: "1:36434956024:android:60204da7a7e7c1877a750d",
messagingSenderId: "messagingSenderId",
projectId: "chat-app-27389"),
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
User? user = FirebaseAuth.instance.currentUser;
Future<bool> reload(User user) async {
await FirebaseAuth.instance.currentUser?.reload();
return user.emailVerified;
}
@override
Widget build(BuildContext context) {
User? user = FirebaseAuth.instance.currentUser;
return MaterialApp(
debugShowCheckedModeBanner: false,
home: user != null && reload(user) == true
? const HomePage()
: LoginPage());
}
}
字符串
这是sign in/up方法的实现:
当用户按下登录按钮时:
MyBotton(
btnText: "Login",
onTap: () {
reload();
if (_formKey.currentState!.validate()) {
firebaseServices!.loginWithEmailPassword(
emailController.text,
passwordController.text,
context);
}
},
),
型
2条答案
按热度按时间jm81lzqq1#
这取决于使用的登录方法。如果用户使用Google登录,则emailVerified将始终返回true,如果不是这种情况,则提供显示实现的登录方法的代码。此外,您可以从帖子或任何公共视图中取出apiKey吗?这是危险的
jaxagkaj2#
你的
reload
是一个返回Future<bool>
的异步方法。这意味着reload(user) == true
甚至不应该在下面的代码中编译:字符串
如果你想在构建UI时使用
Future
,你需要use aFutureBuilder
。