如何加快Firebase身份验证过程

时间:2017-10-22 20:16:10

标签: android firebase firebase-authentication google-signin

我有一个安装了Firebase的Android应用程序。对于身份验证,我使用Google登录,然后是Firebase的signInWithCredential()

这有时相当快,有些时候非常慢(Google登录为2秒,Firebase为6秒,有时更长)。从UX的角度来看,这是不可接受的,特别是因为每次用户启动应用程序时都会发生这种情况。

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

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

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 ---

1 个答案:

答案 0 :(得分:10)

身份验证时间完全取决于网络速度和Firebase后端响应时间。

每次应用启动时也无需重新登录用户。

FirebaseAuth.getInstance().getCurrentUser()
除非您使用

明确退出用户,否则

不会为空

FirebaseAuth.getInstance().signOut()

我的意思是。每次用户打开/启动应用程序而不是使用已保存的Auth实例时,您都不应该重新登录用户。

如果您想要更新Auth实例以进行更新更改,请假设用户已登录,然后由于某些原因您阻止该帐户。在这种情况下,用户仍将登录并使用您的服务。为避免这种情况,您可以调用重新加载配置文件,这将比重新登录更快。