通过firestore在android中注册和登录过程
我是android新手,我正在尝试用android开发一个简单的系统,并使用云firestore测试版作为数据库。我已经完成了在数据库中写入数据(电子邮件和密码)的注册部分。但我不知道登录的过程,因为我希望系统读取数据库中的数据,并与数据库中的电子邮件和密码匹配。有人能帮我吗?提前谢谢。 登记活动如下:通过firestore在android中注册和登录过程,android,google-cloud-firestore,Android,Google Cloud Firestore,我是android新手,我正在尝试用android开发一个简单的系统,并使用云firestore测试版作为数据库。我已经完成了在数据库中写入数据(电子邮件和密码)的注册部分。但我不知道登录的过程,因为我希望系统读取数据库中的数据,并与数据库中的电子邮件和密码匹配。有人能帮我吗?提前谢谢。 登记活动如下: public class RegisterActivity extends AppCompatActivity { private Button btnRegister; p
public class RegisterActivity extends AppCompatActivity {
private Button btnRegister;
private EditText edtxtEmail;
private EditText edtxtTpnumber;
private EditText edtxtDepartment;
private EditText edtxtPassword;
private EditText edtxtConfirmpassword;
private FirebaseFirestore rFireStore;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
rFireStore = FirebaseFirestore.getInstance();
btnRegister = (Button) findViewById(R.id.btnregister);
edtxtEmail = (EditText) findViewById(R.id.edtxtemail);
edtxtTpnumber = (EditText) findViewById(R.id.edtxttpnumber);
edtxtDepartment = (EditText) findViewById(R.id.edtxtdepartment);
edtxtPassword = (EditText) findViewById(R.id.edtxtpassword);
edtxtConfirmpassword = (EditText) findViewById(R.id.edtxtconfirmPassword);
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String Email = edtxtEmail.getText().toString();
String TPnumber = edtxtTpnumber.getText().toString();
String Department = edtxtDepartment.getText().toString();
String Password = edtxtPassword.getText().toString();
String ConfirmPassword = edtxtConfirmpassword.getText().toString();
Map<String, String> userMap = new HashMap<>();
userMap.put("Email Address", Email);
userMap.put("TP Number", TPnumber);
userMap.put("Department", Department);
userMap.put("Password", Password);
userMap.put("Confirm Pass", ConfirmPassword);
rFireStore.collection("Users").document("Students").set(userMap).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(RegisterActivity.this, "Data Saved!!", Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(RegisterActivity.this, "Data Failed!!", Toast.LENGTH_SHORT).show();
}
});
/*rFireStore.collection("Users").add(userMap).addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
@Override
public void onSuccess(DocumentReference documentReference) {
Toast.makeText(RegisterActivity.this, "Data Saved!!", Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(RegisterActivity.this, "Data Failed!!", Toast.LENGTH_SHORT).show();
}
});*/
}
});
}
}
公共类注册表活动扩展了AppCompatActivity{
专用按钮BTN注册表;
私人编辑邮件;
私有编辑文本EDTxtpNumber;
私人编辑部;
私有编辑文本和密码;
私有EditText edtxtConfirmpassword;
私人FirebaseFirestore rFireStore;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u寄存器);
rFireStore=FirebaseFirestore.getInstance();
btnRegister=(按钮)findViewById(R.id.btnRegister);
edtxtEmail=(EditText)findViewById(R.id.edtxtEmail);
edtxtTpnumber=(EditText)findViewById(R.id.edtxtTpnumber);
edtxtDepartment=(EditText)findViewById(R.id.edtxtDepartment);
edtxtPassword=(EditText)findViewById(R.id.edtxtPassword);
edtxtConfirmpassword=(EditText)findViewById(R.id.edtxtConfirmpassword);
btnRegister.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串Email=edtxtEmail.getText().toString();
字符串TPnumber=edtxtTpnumber.getText().toString();
字符串Department=edtxtDepartment.getText().toString();
字符串密码=edtxtPassword.getText().toString();
字符串ConfirmPassword=edtxtConfirmpassword.getText().toString();
Map userMap=newhashmap();
userMap.put(“电子邮件地址”,电子邮件);
userMap.put(“TP编号”,TPnumber);
userMap.put(“部门”,Department);
userMap.put(“密码”,Password);
userMap.put(“确认通过”,确认密码);
rFireStore.collection(“Users”).document(“Students”).set(userMap.addOnSuccessListener(新OnSuccessListener)(){
@凌驾
成功时公开作废(作废避免){
Toast.makeText(RegisterActivity.this,“数据已保存!!”,Toast.LENGTH\u SHORT.show();
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
Toast.makeText(RegisterActivity.this,“数据失败!!”,Toast.LENGTH\u SHORT.show();
}
});
/*rFireStore.collection(“Users”).add(userMap.addOnSuccessListener(新的OnSuccessListener()){
@凌驾
成功时公共无效(文档引用文档引用){
Toast.makeText(RegisterActivity.this,“数据已保存!!”,Toast.LENGTH\u SHORT.show();
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
Toast.makeText(RegisterActivity.this,“数据失败!!”,Toast.LENGTH\u SHORT.show();
}
});*/
}
});
}
}
对于登录,您可以使用以下选项:
for (QueryDocumentSnapshot documentSnapshot : task.getResult()) {
if (task.isSuccessful()) {
//task result = 1
}
}
if (task.getResult().size() == 0) {
//task result = 0
}
尝试使用。会解决你所有的问题。