Как использовать заданное значение вместо getUid в FirebaseDatabase в Android - PullRequest
0 голосов
/ 05 февраля 2019

Я работаю с аутентификацией 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 голосов
/ 05 февраля 2019

Вы можете установить, как показано ниже: замените FirebaseAuth.getInstance().getCurrentUser().getUid() на name.Это создаст узел с именем пользователя.

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();
                               }
                           }

Надеюсь, это поможет вам:)

0 голосов
/ 05 февраля 2019

Чтобы решить эту проблему, вместо передачи uid (FirebaseAuth.getInstance().getCurrentUser().getUid()) пользователя методу child(), передайте userName:

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

Смотрите, я передал имя вместоUID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...