【问题标题】:Firebase authentication taking too long from Android DeviceAndroid 设备的 Firebase 身份验证时间过长
【发布时间】:2017-02-01 20:30:05
【问题描述】:

我正在使用 Firebase 向不同的提供商(谷歌、Facebook 和电子邮件)注册和登录用户。我已经使用这个功能三个月了,到目前为止它运行良好。但是,此时,当我安装应用程序后首次登录时,需要超过 10 秒。我已经追踪了这个行为,我发现这个监听器导致了延迟。

private FirebaseAuth firebaseAuth;
...    
firebaseAuth.signInWithCredential(credential).addOnSuccessListener(new OnSuccessListener<AuthResult>() {
        @Override
        public void onSuccess(AuthResult authResult) {
            // This function is called after more than 10 seconds
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            //
        }
    });

关于为什么需要太长时间的任何想法?有什么方法可以让我更深入地跟踪这个函数来找到问题的确切根源?

【问题讨论】:

  • 你的问题解决了吗?
  • 任何解决方案?
  • 2022 年同样的问题。就我而言,我注意到它与网络有关。 Wi-Fi 大约需要 30 秒,移动网络大约需要 2 秒

标签: android firebase firebase-authentication


【解决方案1】:

这个特定的侦听器(onSuccess)正在从 Firebase 服务器发起回调,这可能是导致该延迟的原因。这就像向远处的墙壁扔一个球,然后等待它反弹才能接住。

这将监听您的登录事件,即使登录成功,它也会等待 Firebase 响应以明确确认登录已成功。我个人觉得你不需要这个回调检查。因为您可以在实际功能中轻松检查错误和成功登录。

编辑:您应该使用 .onCompleteListener 并检查。我希望这将保持代码逻辑有点相似,并且仍然给出更好的结果

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多