Firebase电子邮件+密码登录事件未触发

时间:2016-07-19 16:51:45

标签: java android firebase firebase-authentication

我在Firebase中登录和注册事件时遇到问题。代码会跳过整个事件。

public class LoginFragment extends Fragment {

    String TAG = "LOGIN";
    TextView tvLoginError;
    EditText etUsername, etPassword;
    Button btnLogin;

    public LoginFragment() {}

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.login, container, false);
        setupTools(rootView);
        return rootView;
    }

    private void setupTools(View rootView){
        tvLoginError = (TextView) rootView.findViewById(R.id.tvLoginError);
        etUsername = (EditText) rootView.findViewById(R.id.etUsername);
        etPassword = (EditText) rootView.findViewById(R.id.etPassword); 
        btnLogin = (Button) rootView.findViewById(R.id.btnLogin); 

        btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final String username = etUsername.getText().toString();
                final String password = etPassword.getText().toString();

                // login
                Authenticate.mAuth.signInWithEmailAndPassword(username, password).addOnCompleteListener(getActivity(), new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        Log.d(TAG, "signInWithEmail:onComplete:" + task.isSuccessful());

                        // If sign in fails, display a message to the user. If sign in succeeds the auth state listener will be notified and logic to handle the signed in user can be handled in the listener.
                        if (!task.isSuccessful()) {
                            Log.w(TAG, "signInWithEmail", task.getException());
                            tvLoginError.setText("Login failed - " + task.getException().getMessage().toString());
                        }
                    }
                });
            }
        }); 

    } 
}

Authenticate.mAuth不为null。用户名和密码已设置。

没有错误,只是完全跳过onComplete中的signInWithEmailAndPassword功能。 AuthStateListener中的Authentication事件在onResume中被解雇Authentication(用户已注销,因为我无法注册或登录)。

我的清单中也有互联网许可。

2 个答案:

答案 0 :(得分:0)

您需要在问题中提供更多详细信息,并且可以尝试按照this教程进行操作。它演示了如何使用新的Firebase Email&amp; amp;构建Firebase身份验证演示应用程序。密码验证..

答案 1 :(得分:0)

原来我的代码没有任何问题,但是我的google_services.json文件不正确(不知道为什么,我在设置Firebase Auth后从Firebase / Google获得了这个)。我最后通过更改Firebase中的设置来刷新它,然后还原该设置并再次下载google_services.json。这工作..奇怪。