首页 > 解决方案 > Firebase 安卓用户认证

问题描述

我正在为我的 android 应用程序使用 firebase。我正在使用使用电子邮件和密码的 Firebase 身份验证,但我需要保存用户的学生 ID 以及我想要检查它是否唯一的电子邮件和密码。我尝试通过首先保存电子邮件并通过然后我得到它的 uid 并使用相同的 uid 在数据库中保存国家 ID 来添加额外的信息学生 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();
                        }
                    }
                });

标签: androidfirebasefirebase-authentication

解决方案


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


推荐阅读