Android 设备的 Firebase 身份验证时间过长

Nic*_*ias 5 android firebase firebase-authentication

我正在使用 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) {
            //
        }
    });
Run Code Online (Sandbox Code Playgroud)

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

Nis*_*bey 3

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

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

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