Firebase GoogleAuth自动登录
我已经在我的移动应用程序中实现了谷歌登录,但是,它曾经向我询问过我的电子邮件和密码。当我再次运行应用程序时,它会跳过登录屏幕并自动导航到主屏幕 我试过: 删除菜单上的应用程序。 清除设置上的缓存。(我想我做不好,也不确定) 甚至删除了自动登录的配置文件。(仍以用户idk how的身份保存此配置文件…)Firebase GoogleAuth自动登录,firebase,flutter,dart,firebase-authentication,Firebase,Flutter,Dart,Firebase Authentication,我已经在我的移动应用程序中实现了谷歌登录,但是,它曾经向我询问过我的电子邮件和密码。当我再次运行应用程序时,它会跳过登录屏幕并自动导航到主屏幕 我试过: 删除菜单上的应用程序。 清除设置上的缓存。(我想我做不好,也不确定) 甚至删除了自动登录的配置文件。(仍以用户idk how的身份保存此配置文件…) 导入“包装:颤振/材料.省道”; 导入“包:provider/provider.dart”; 导入“./components/google_sign_in.dart”; 导入“组件/主体.dart
导入“包装:颤振/材料.省道”;
导入“包:provider/provider.dart”;
导入“./components/google_sign_in.dart”;
导入“组件/主体.dart”;
导入“包:firebase_auth/firebase_auth.dart”;
导入“../home/home_screen.dart”;
类标志屏幕扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:ChangeNotifierProvider(
创建:(上下文)=>GoogleSignInProvider(),
孩子:StreamBuilder(
流:FirebaseAuth.instance.authStateChanges(),
生成器:(上下文,快照){
最终提供者=提供者(上下文);
if(provider.isSigningIn){
返回buildLodading();
}else if(snapshot.hasData){
打印(“数据:${snapshot.data}”);
返回主屏幕();
}否则{
返回体();
}
})));
}
Widget buildLodading()=>Center(子项:CircularProgressIndicator());
}
Body()=登录屏幕
程序总是在snapshot.hasData上返回true,这样它就不会进入其他程序。您描述的是预期的行为。重新启动应用程序时,Firebase会隐式尝试还原用户凭据,这样用户就不必在每次启动应用程序时登录 如果您希望用户在每次启动应用程序时明确要求用户提供登录凭据,请在应用程序启动时注销任何现有用户 例如:
void main() {
WidgetsFlutterBinding.ensureInitialized();
final Future<FirebaseApp> _initialization = Firebase.initializeApp();
FirebaseAuth.instance.signOut();
runApp(App());
}
void main(){
WidgetsFlutterBinding.ensureInitialized();
最终未来_initialization=Firebase.initializeApp();
FirebaseAuth.instance.signOut();
runApp(App());
}
void main() {
WidgetsFlutterBinding.ensureInitialized();
final Future<FirebaseApp> _initialization = Firebase.initializeApp();
FirebaseAuth.instance.signOut();
runApp(App());
}