【问题标题】:firebase authentication timeoutfirebase 身份验证超时
【发布时间】:2017-09-11 19:23:10
【问题描述】:

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

【问题讨论】:

    标签: android timeout firebase-authentication


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2019-11-13
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-01
      • 2022-12-10
      • 1970-01-01
      相关资源
      最近更新 更多