Firebase无法在我的android应用程序中成功访问我的用户表
经过数小时的思考,我终于找到了将Firebase与我的应用程序集成的方法。现在,我已经创建了一个Users表(如果我遵循Google的文档正确的话),并为我的第一个用户添加了字段 此外,我还制定了如下规则:Firebase无法在我的android应用程序中成功访问我的用户表,android,firebase,google-cloud-firestore,Android,Firebase,Google Cloud Firestore,经过数小时的思考,我终于找到了将Firebase与我的应用程序集成的方法。现在,我已经创建了一个Users表(如果我遵循Google的文档正确的话),并为我的第一个用户添加了字段 此外,我还制定了如下规则: service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if false; } } } 以下
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();
}
}
});
}
}
公共类SignInFragment扩展片段{
公共静态SignInFragment newInstance()
{
返回新的SignInFragment();
}
私人消防队;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.fragment\u登录,
货柜(虚假);;
mAuth=FirebaseAuth.getInstance();
最终按钮btnSignIn=view.findViewById(R.id.btnSignIn);
最终编辑文本电子邮件=view.findviewbyd(R.id.email\u text);
最终编辑文本密码=view.findviewbyd(R.id.password\u Text);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
GetUser(email.toString(),password.toString());
}
});
返回视图;
}
私有void GetUser(字符串电子邮件、字符串密码){
mAuth.使用电子邮件和密码登录(电子邮件,密码)
.addOnCompleteListener(getActivity(),new OnCompleteListener()){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
//登录成功,使用登录用户的信息更新UI
FirebaseUser=mAuth.getCurrentUser();
Toast.makeText(getActivity(),“用户已找到!”,Toast.LENGTH_SHORT.show();
}
否则{
Toast.makeText(getActivity(),“该电子邮件没有用户!”,Toast.LENGTH\u SHORT.show();
}
}
});
}
}
当我进入登录屏幕并输入与我的用户表中相同的电子邮件和密码时,它会显示“不正确的用户”toast消息。我已经检查了我的条目和所有匹配项。所以我的问题是:我做错了什么?我是否错过了更多进入用户表的步骤?还值得注意的是,我的代码完全基于Firebase助手,在Android Studio中的身份验证教程中 不要使用
email.toString()
使用email.getText().toString()
而不要使用email.toString()
使用email.getText().toString()
真管用!非常感谢你。我还发现我必须进入Firebase控制台并启用电子邮件身份验证。耶,它成功了!非常感谢你。我还发现我必须进入Firebase控制台并启用电子邮件身份验证。