我有一个安装了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 ---
答案 0 :(得分:10)
身份验证时间完全取决于网络速度和Firebase后端响应时间。
每次应用启动时也无需重新登录用户。
FirebaseAuth.getInstance().getCurrentUser()
除非您使用明确退出用户,否则不会为空
FirebaseAuth.getInstance().signOut()
我的意思是。每次用户打开/启动应用程序而不是使用已保存的Auth实例时,您都不应该重新登录用户。
如果您想要更新Auth实例以进行更新更改,请假设用户已登录,然后由于某些原因您阻止该帐户。在这种情况下,用户仍将登录并使用您的服务。为避免这种情况,您可以调用重新加载配置文件,这将比重新登录更快。