我正在将firebase用于我的android应用程序。我正在使用通过电子邮件和密码进行的Firebase身份验证,但是我需要保存用户的学生ID以及要对其进行唯一检查的电子邮件和密码。我尝试通过先保存电子邮件并通过添加额外的信息学生ID,然后获取其uid,并使用相同的uid将国家ID保存在数据库中,但是问题是我想检查该国家ID是否唯一。
firebaseDatabase= database.getReference("USERS");
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
String userId = mAuth.getCurrentUser().getUid();
DatabaseReference dr = firebaseDatabase.child(userId);
dr.child("studentID").setValue(sID);
pr.dismiss();
Intent intent = new Intent(MainActivity.this, home.class);
startActivity(intent);
} else if (task.getException() instanceof FirebaseAuthUserCollisionException) {
Toast.makeText(MainActivity.this, "Already Registered!", Toast.LENGTH_LONG).show();
pr.dismiss();
} else {
Toast.makeText(MainActivity.this, "Connection Problem", Toast.LENGTH_LONG).show();
pr.dismiss();
}
}
});
答案 0 :(得分:0)
在保存额外信息之前,您必须阅读数据库并找到国家ID,如果firebase返回值,则该ID存在,否则您可以在数据库中创建一个名为ID的节点。