Firebase身份验证在登录时显示网络或超时错误

时间:2019-03-06 10:39:11

标签: android firebase firebase-authentication

我创建了一个使用firebase作为后端服务的应用。到今天为止一切正常。我无法登录,它显示登录时出现异常“发生错误网络错误(例如超时,连接中断或主机无法访问)。”

这是我认为不错的登录代码:

  login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (((GlobalApp) getApplication()).isNetworkConnected()){
                if (validateinput()){
                    Loadingdialog.setTitle("Retrieving User");
                    Loadingdialog.setMessage("Loading...");
                    Loadingdialog.setCancelable(false);
                    Loadingdialog.setCanceledOnTouchOutside(false);
                    Loadingdialog.show();

                    mAuth.signInWithEmailAndPassword(emailfield.getText().toString(),passfield.getText().toString())
                            .addOnCompleteListener(LoginActivity.this, new OnCompleteListener<AuthResult>() {
                                @Override
                                public void onComplete(@NonNull Task<AuthResult> task) {
                                    if (task.isSuccessful()){
                                       // saveuserToken();
                                        getUserDataFromDb();

                                    }
                                    else {
                                        Loadingdialog.dismiss();
                                        Log.d("ErrorTag", "Error Occured " +task.getException().getMessage());
                                        Toast.makeText(getBaseContext(),task.getException().getLocalizedMessage(),Toast.LENGTH_SHORT).show();

                                    }
                                }
                            });
                }

            }else {
                // SHow Network error

                Snackbar snackbar = Snackbar
                        .make(findViewById(R.id.splashscreen),"Network Not Available", Snackbar.LENGTH_LONG);
                View snackBarView = snackbar.getView();
                snackBarView.setBackgroundColor(Color.BLACK);
                snackbar.setActionTextColor(Color.WHITE);
                snackbar.show();

            }
        }
    });

2 个答案:

答案 0 :(得分:0)

您未连接到Internet或您尚未在Android的MANIFEST FILE中授予INTERNET权限。

答案 1 :(得分:0)

在清单中添加此

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>