当前位置: 首页 > 知识库问答 >
问题:

使用 Firebase 进行登录身份验证失败

田向荣
2023-03-14

我试图用注册时使用的凭证登录。Firebase已经有注册用户的条目。每次我试图登录它显示“登录不成功”,我没有看到任何代码问题。请帮帮忙。

public class LoginFragment extends Fragment implements View.OnClickListener {
private EditText email_login, password_login;
private TextView register_login;
private Button button_login;
private FirebaseAuth firebaseAuth;
private ProgressDialog progressDialog;

public LoginFragment() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View userLoginFragment = inflater.inflate(R.layout.fragment_login, container, false);


    email_login = (EditText) userLoginFragment.findViewById(R.id.email_login);
    password_login = (EditText) userLoginFragment.findViewById(R.id.password_login);
    register_login = (TextView) userLoginFragment.findViewById(R.id.register_login);
    button_login = (Button) userLoginFragment.findViewById(R.id.button_login);
    progressDialog = new ProgressDialog(this.getActivity());


    button_login.setOnClickListener(this);
    register_login.setOnClickListener(this);

    firebaseAuth = FirebaseAuth.getInstance();

    if(firebaseAuth.getCurrentUser()!=null){
        ProfileFragment profileFragment = new ProfileFragment();
        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.main_container, profileFragment);
        fragmentTransaction.commit();
    }

    return userLoginFragment;
}

@Override
public void onClick(View v) {

    if (v == button_login)
        userLogin();

    if (v == register_login) {
        UserRegisterFragment userRegisterFragment = new UserRegisterFragment();
        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.main_container, userRegisterFragment);
        fragmentTransaction.commit();
    }

}//End of onClick() method

public void userLogin(){
    String email = email_login.getText().toString().trim();
    String password = password_login.getText().toString().trim();

    if (email.length() == 0) {
        email_login.setError("Username is required");
        email_login.requestFocus();
    }
    if (password.length() == 0) {
        password_login.setError("Password is required");
        password_login.requestFocus();
    }
    if (email.length()>0 && password.length()>0){
        progressDialog.setMessage("Signing in...");
        progressDialog.show();
        firebaseAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(this.getActivity(), new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (!task.isSuccessful()) {
                    Toast.makeText(LoginFragment.this.getActivity(), "Login unsuccessful!", Toast.LENGTH_SHORT).show();
                    progressDialog.dismiss();

                }

                else{


                    Toast.makeText(LoginFragment.this.getActivity(), "Login successful!", Toast.LENGTH_SHORT).show();
                    progressDialog.dismiss();

                    ProfileFragment profileFragment = new ProfileFragment();
                    FragmentManager fragmentManager = getFragmentManager();
                    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.main_container, profileFragment);
                    fragmentTransaction.commit();
                }
            }
        });

    }

}
}

共有1个答案

狄宇
2023-03-14

更改您的代码以显示失败原因:

if (!task.isSuccessful()) {
    Toast.makeText(LoginFragment.this.getActivity(),
         "Login unsuccessful: " + task.getException().getMessage(), //ADD THIS
          Toast.LENGTH_SHORT).show();
    progressDialog.dismiss();

}
 类似资料:
  • 使用,https://github.com/firebase/FirebaseUI-Android/tree/master/codelabs/chat作为登录的参考,我在键入时似乎遇到了问题 我只能键入Auth的提供者,而不能键入,为什么会这样,它提示我键入社会提供者。

  • 该应用程序应该接受用户电子邮件和密码,并使用Firebase身份验证作为后端。我使用像素2作为模拟器。每次应用程序处理登录功能时,它都会崩溃。 下面是Java文件和gradle文件 Java文件:

  • 当使用Firebase身份验证匿名帐户时,它偶尔会在系统中创建一个新的用户ID,有时它会使用相同的用户ID。我真的希望每次都能创建相同的用户ID,这样匿名用户仍然可以在应用程序中维护相同的进度/数据。这实际上是我开始使用Firebase的原因。即使在重新启动应用程序等之后,我如何始终维护一个匿名帐户来保持相同的用户ID? 我希望用户每次以访客身份玩游戏时都能获得相同的ID。我看到有些应用程序在卸载

  • 本文向大家介绍firebase-authentication Google Plus登录身份验证,包括了firebase-authentication Google Plus登录身份验证的使用技巧和注意事项,需要的朋友参考一下 示例 使用Plus登录验证用户 onCreate onStart() 获取资料信息 使用Firebase进行身份验证, onActivityResult 登出      

  • 我不知道如何开玩笑模拟Firebase身份验证与谷歌登录正确。我有以下代码: 易于理解的tsx 易于理解的测验tsx 如有任何帮助,请举例说明?

  • 当使用Firebase Auth进行身份验证时,我想自动输入通过SMS接收的代码。我能够接收短信并手动完成身份验证过程,但当我使用SmsRetriever时,应用程序崩溃,然后显示底部工作表对话框。这是Logcat中显示的所有内容: [SmsRetrieverHelper]SMS校验码请求失败:未知状态代码:17010 null 用户输入其电话号码的代码片段: 这是片段中的代码,用户必须在其中输入