如何在Android中的FirebaseDatabase中使用set Value而不是getUid

时间:2019-02-05 13:14:52

标签: android firebase firebase-realtime-database firebase-authentication

我正在使用Firebase身份验证和数据库。在我的项目用户中,登录并使用他们的电子邮件和密码进行注册。我使用模型类,其中具有三个可变的电子邮件,密码和名称。我可以在身份验证中存储电子邮件数据库中的部门和用户详细信息。 代码如下:

 User user = new User(name,mail,password);
   FirebaseDatabase.getInstance().getReference("Users")
   .child(FirebaseAuth.getInstance().getCurrentUser().getUid())
   .setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
       @Override
       public void onComplete(@NonNull Task<Void> task) {
           if (task.isSuccessful()){
               startActivity(new Intent(SignUp.this,Home.class));
               finish();
           }else {
               Toast.makeText(SignUp.this, "Getting error", Toast.LENGTH_SHORT).show();
           }
       }

enter image description here

有没有办法使用用户名代替getUid值? enter image description here

2 个答案:

答案 0 :(得分:1)

要解决此问题,请不要将用户的uid(FirebaseAuth.getInstance().getCurrentUser().getUid()传递给child()方法,而应传递userName

FirebaseDatabase.getInstance().getReference("Users").child(name).setValue(user).addOnCompleteListener(/* ... */);
//                                                         ^  ^

看到我已经通过了名称而不是uid。

答案 1 :(得分:1)

您可以进行如下设置:将FirebaseAuth.getInstance().getCurrentUser().getUid()替换为name。它将使用userName创建节点。

user = new User(name,mail,password);
                       FirebaseDatabase.getInstance().getReference("Users")
                       .child(name) // replace the getUid() code with name
                       .setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
                           @Override
                           public void onComplete(@NonNull Task<Void> task) {
                               if (task.isSuccessful()){
                                   startActivity(new Intent(SignUp.this,Home.class));
                                   finish();
                               }else {
                                   Toast.makeText(SignUp.this, "Getting error", Toast.LENGTH_SHORT).show();
                               }
                           }

希望它会为您提供帮助:)