Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase GoogleAuth自动登录_Firebase_Flutter_Dart_Firebase Authentication - Fatal编程技术网

Firebase GoogleAuth自动登录

Firebase GoogleAuth自动登录,firebase,flutter,dart,firebase-authentication,Firebase,Flutter,Dart,Firebase Authentication,我已经在我的移动应用程序中实现了谷歌登录,但是,它曾经向我询问过我的电子邮件和密码。当我再次运行应用程序时,它会跳过登录屏幕并自动导航到主屏幕 我试过: 删除菜单上的应用程序。 清除设置上的缓存。(我想我做不好,也不确定) 甚至删除了自动登录的配置文件。(仍以用户idk how的身份保存此配置文件…) 导入“包装:颤振/材料.省道”; 导入“包:provider/provider.dart”; 导入“./components/google_sign_in.dart”; 导入“组件/主体.dart

我已经在我的移动应用程序中实现了谷歌登录,但是,它曾经向我询问过我的电子邮件和密码。当我再次运行应用程序时,它会跳过登录屏幕并自动导航到主屏幕

我试过: 删除菜单上的应用程序。 清除设置上的缓存。(我想我做不好,也不确定) 甚至删除了自动登录的配置文件。(仍以用户idk how的身份保存此配置文件…)

导入“包装:颤振/材料.省道”;
导入“包: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());
}