android - 如何加快 Firebase 身份验证过程

标签 android firebase firebase-authentication google-signin

我有一个带有 Firebase 支持存储的 Android 应用程序。对于身份验证,我使用 Google 登录,然后使用 Firebase 的 signInWithCredential()

这有时相当快,有时非常慢(Google 登录为 2 秒,Firebase 为 6 秒,有时更长)。从用户体验的角度来看,这是 Not Acceptable ,尤其是因为每次用户启动应用程序时都会发生这种情况。

我可以做些什么来加快速度吗?

简而言之,删除了所有异步处理:

result = Auth.GoogleSignInApi.silentSignIn(googleApiClient).get();
// --- That can take over two seconds ---

GoogleSignInAccount acct = result.getSignInAccount();
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
authTask = auth.signInWithCredential(credential);
// --- This can take over six seconds ---

最佳答案

身份验证时间取决于网络速度和 Firebase 服务器。

用户每次启动您的应用程序时都无需登录,因为

FirebaseAuth.getInstance().getCurrentUser()

不会为空,除非您明确注销用户

FirebaseAuth.getInstance().signOut()

如果您想为更新的更改更新 Auth 实例,您可以在配置文件上调用 reload,这比重新登录更快。

为什么您可能需要重新加载配置文件?

假设用户已登录,而您从 Firebase 控制面板中屏蔽了该帐户。在这种情况下,用户仍将处于登录状态。您可以重新加载配置文件而不是重新登录来撤销用户访问权限。

关于android - 如何加快 Firebase 身份验证过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46878734/

相关文章:

android - Facebook Android SDK 未返回所有个人资料信息

android - 如何使用 Firebase 列表适配器

Android WebKit 聚焦文本区域不会绘制背景图像

android - Android 客户端上的 Firestore 集合组 PERMISSION_DENIED

ios - 我是否应该始终在 viewDidDisappear() 中删除 Firebase 监听器?

android - 从 FirebaseMessagingService 重新加载 Webview

android - Firebase UI 身份验证登录错误 api 异常

javascript - Android 获取唯一的 firebase token 并使用云功能进行身份验证

android - Jetpack 撰写 : Make full-screen (absolutely positioned) component

firebase - redux-saga 和 firebase - 无法以干净的方式注销用户