firebase 身份验证超时
Posted
技术标签:
【中文标题】firebase 身份验证超时【英文标题】:firebase authentication timeout 【发布时间】:2017-09-11 19:23:10 【问题描述】:我正在使用 Firebase 开发 android 应用。如果设备具有良好的互联网连接,则使用电子邮件和密码的登录过程可以正常工作,但是当我在信号不良或连接缓慢的地方进行测试时,该过程会等待很多时间。问题是:是否存在某种方式来为 Firebase 身份验证设置超时?延迟不利于用户体验。我通过单击登录按钮事件时发布的 Asynctask 解决了这个问题,此 Asynctask 等待 8 秒并向用户显示警告消息:连接速度慢,您可以等待或退出并稍后尝试,但我认为这是最好的方法正在超时。
【问题讨论】:
【参考方案1】:当然 com.google.android.gms.tasks 包在未来不应该被 google 混淆和详细记录。我通过使用实用方法'await'在当前线程上同步等待它来运行我的任务,从而解决了同样的问题:
import com.google.android.gms.tasks.Tasks;
private String requestToken(boolean refresh)
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
Task<GetTokenResult> task = user.getIdToken(refresh);
return Tasks.await(task, 10, TimeUnit.SECONDS);
如果网络连接不好,await方法会在指定超时后抛出java.util.concurrent.TimeoutException
【讨论】:
以上是关于firebase 身份验证超时的主要内容,如果未能解决你的问题,请参考以下文章