Firebase身份验证在Android设备上耗时太长

时间:2016-09-23 21:39:00

标签: android firebase firebase-authentication

我正在使用Firebase注册并使用不同的提供商(谷歌,脸书和电子邮件)登录用户。我已经使用这个功能三个月,到目前为止它工作正常。但是,此时,在安装应用程序后首次登录时,需要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) {
            //
        }
    });

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

1 个答案:

答案 0 :(得分:1)

此特定侦听器(onSuccess)正在启动Firebase服务器的回调,这可能是导致该延迟的原因。就像把球扔到远处的墙上然后等待它反弹才能赶上。

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

编辑:你应该使用.onCompleteListener并检查。我希望这将使代码逻辑保持一定的相似性并仍能提供更好的结果