Firebase 注销在颤振应用程序中不起作用
Posted
技术标签:
【中文标题】Firebase 注销在颤振应用程序中不起作用【英文标题】:Firebase sign out is not working in flutter application 【发布时间】:2021-04-05 18:59:18 【问题描述】:我正在根据提供者 ID 在 Flutter 应用程序中实现 Firebase 注销,但现在根本无法正常工作。
我正在执行下面的代码。
FirebaseAuth _auth = FirebaseAuth.instance;
if(_auth.currentUser != null)
User user = _auth.currentUser;
var userset = user.providerData[0].providerId;
if(userset == 'google.com')
print('google provider');
await GoogleSignIn().signOut();
//Firebase sign out navigation to the login page
else
_auth.signOut();
//Firebase sign out navigation to the login page
print('sign out done successfully');
代码已执行,但身份验证状态保持用户登录状态,无论是登录还是注销,并且在重新加载应用程序时它不会进入登录页面而是进入主页。
我应该如何检查退出是否成功?
应用重新加载时应用中的身份验证状态处理
Widget _handleAuth()
return StreamBuilder<User>(
stream: FirebaseAuth.instance.authStateChanges(),
builder: (BuildContext context, snapshot)
return (!snapshot.hasData)
? LoginPage()
: HomePage();
,
);
【问题讨论】:
不工作意味着什么?正是你想要的?因为它看起来你的代码是正确的 @ShubhamNarkhede 代码就在某个地方,但问题是当应用程序重新加载时,它会在用户退出而不是登录页面时进入应用程序的主页。请指导我进行某种检查以确保成功退出。以及身份验证状态的变化。 @ShubhamNarkhede 请检查我在问题中进行更改的页面的身份验证状态处理 打印后请检查用户快照给出的输出,然后检查可能对您有帮助 @ShubhamNarkhede,我通过在控制台中打印来检查它,即使在注销后它仍然保持用户状态,这是在实现 google 登录后发生的,早期的电子邮件密码工作正常 【参考方案1】:即使您使用的是 google 提供商,您也需要退出 firebase:
if(userset == 'google.com')
print('google provider');
await GoogleSignIn().signOut();
_auth.signOut();
【讨论】:
以上是关于Firebase 注销在颤振应用程序中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
将颤振项目发布到 Play 商店后,Firebase Auth 登录不起作用