firebase身份验证超时

时间:2017-04-15 19:00:01

标签: android timeout firebase-authentication

我正在使用Firebase开发Android应用。如果设备具有良好的互联网连接,则使用电子邮件和密码的登录过程正常工作,但是当我在信号较差的地方进行测试或连接速度较慢时,该过程会等待很长时间。问题是:存在某种方式为firebase身份验证设置超时?,延迟对用户体验不利。我通过单击登录按钮事件发布的Asynctask解决了这个问题,这个Asynctask等待8秒并向用户显示一条消息警告:连接速度慢,你可以等待或退出并稍后再试,但我认为这是最好的方法暂停了。

1 个答案:

答案 0 :(得分:0)

请确保Google以后不要混淆com.google.android.gms.tasks程序包并对其进行详细记录。我通过使用实用程序方法“ 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