Firebase无法成功进入我的Android应用程序中的用户表

时间:2018-11-30 04:44:55

标签: android firebase google-cloud-firestore

经过数小时的研究,我终于设法做到了如何将Firebase与我的应用程序集成。现在,我已经创建了一个Users表(如果我遵循Google的文档说明),并为我的第一个用户添加了字段

enter image description here

此外,我将规则设置为:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

这是我登录片段的方式:

public class SignInFragment extends Fragment {

    public static SignInFragment newInstance()
    {
        return new SignInFragment();
    }

    private FirebaseAuth mAuth;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_login,
                container, false);
        mAuth = FirebaseAuth.getInstance();

        final Button btnSignIn = view.findViewById(R.id.btnSignIn);
        final EditText email = view.findViewById(R.id.email_text);
        final EditText password = view.findViewById(R.id.password_Text);

        btnSignIn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                GetUser(email.toString(), password.toString());
            }
        });    
        return view;
    }

    private void  GetUser(String email, String password) {
        mAuth.signInWithEmailAndPassword(email, password)
                .addOnCompleteListener(getActivity(), new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (task.isSuccessful()) {
                            // Sign in success, update UI with the signed-in user's information
                            FirebaseUser user = mAuth.getCurrentUser();
                            Toast.makeText(getActivity(),"User found!",Toast.LENGTH_SHORT).show();
                        }
                        else{
                            Toast.makeText(getActivity(),"No user by that email!",Toast.LENGTH_SHORT).show();
                        }
                    }
                });
    }

}

当我进入登录屏幕并输入与我的用户表相同的电子邮件和密码时,它向我显示“不正确的用户”吐司消息。我已经检查了我的输入,并且一切都匹配。所以我的问题是:我在做什么错?我是否缺少更多访问“用户”表的步骤?还值得注意的是,我的代码完全基于Android Studio身份验证教程中的Firebase Assistant。

1 个答案:

答案 0 :(得分:2)

使用email.toString()代替使用email.getText().toString()