Firebase android用户身份验证

时间:2019-01-30 19:21:54

标签: android firebase firebase-authentication

我正在将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();
                        }
                    }
                });

1 个答案:

答案 0 :(得分:0)

在保存额外信息之前,您必须阅读数据库并找到国家ID,如果firebase返回值,则该ID存在,否则您可以在数据库中创建一个名为ID的节点。