Невозможно обновить пользовательскую таблицу Firebase с помощью userId - PullRequest
0 голосов
/ 27 апреля 2018

Здесь я создаю пользователя «Firebase» в процессе регистрации с помощью «firstName», «lastName», «email», «password». После успешного входа в систему я загружаю все значения регистрации на другой экран с двумя новыми «Edittext». Теперь мне нужно обновить эту таблицу регистрации с помощью «Firebase» «userId», добавив два новых значения «страна» и «занятие», которые вводятся в новом ». EditText '. Для этого процесса регистрации и добавления новых значений я использовал класс "UserProfileBean".

ниже указан код.

        FirebaseDatabase database = FirebaseDatabase.getInstance();
        DatabaseReference myRef = database.getReference("new_user");
        FirebaseUser user= FirebaseAuth.getInstance().getCurrentUser();
        String userid=user.getUid();


        final UserProfileBean userProfileBean = new UserProfileBean();
        userProfileBean.setCountry(country.getText().toString());
        userProfileBean.setOccupation(occupation.getText().toString());

        Log.d("UPDATE_PROFILE", "UPDATE_PROFILE_DATA" + userid + "," +
                userProfileBean.getOccupation() + ", " + userProfileBean.getCountry());

        //myRef.child(userid).child("country").setValue(userProfileBean.getCountry());

        Query pendingTasks = myRef.child(userid).orderByChild("country").equalTo("");
        pendingTasks.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot tasksSnapshot) {
                for (DataSnapshot snapshot: tasksSnapshot.getChildren()) {
                    snapshot.getRef().child("country").setValue(userProfileBean.getCountry());
                    snapshot.getRef().child("occupation").setValue(userProfileBean.getOccupation());
                }
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
                System.out.println("The read failed: " + databaseError.getMessage());
            }
        });

Код выше реализован кнопкой onclickListener.

1 Ответ

0 голосов
/ 27 апреля 2018

Чтобы обновить пользовательский узел, попробуйте следующее:

FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
String useruid=user.getUid();
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("User").child(useruid);

 Map<String,Object> update=new HashMap<>();
 update.put("Country",userProfileBean.getCountry());
 update.put("Occupation",userProfileBean.getOccupation());

ref.updateChildren(update);

подробнее здесь:

https://firebase.google.com/docs/database/android/read-and-write#update_specific_fields

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