我有一个带有 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/