Разница между Pojo и HashMap в updateChildren - PullRequest
0 голосов
/ 05 июня 2018

Правильно сказать, что «если я сохраню POJO с некоторым значением null в Firebase с функцией updateChildren, это то же самое, что я имею с тем же POJO в setValue».Я не хочу ничего удалять.В этом случае я должен использовать HashMap?

КОД

usrBuilder = new Users.Builder();
        usrBuilder.setUid(uid)
                .setFull_name(name.getText().toString())
                .setSex((rb_F.isChecked())?"F":"M")
                .setBirthDate(data_nascita.getText().toString())
                .setEmail(email.getText().toString())
                .setCity_live(citta.getText().toString());

usrUpdated = new Users(usrBuilder);
        firebaseUpdate.put("/Users/"+uid+"/", usrUpdated);

//POJO USERS
public Users(Builder builder){
        uid = builder.uid;
        email= builder.email;
        full_name= builder.full_name;
        sex = builder.sex;
        birth_date = builder.birth_date;
        city_live = builder.city_live;
        url_img_profile_large = builder.url_img_profile_large;
        url_img_profile_small = builder.url_img_profile_small;

    }

url_img_profile *.

Теперь я понимаю мою проблему, потому что она видит нулевое значение.

Firebase-root
    |
    --- Users
         |
         --- uid
                |
                --- name: "name"
                |
                --- sex: "F" 
                |
                --- email: "email@ame.it"
                |
                --- birth_date: "Jun 1, 2018" 
                |
                --- city: "Campobasso"
                |
                --- url_photo_small: "urlStorage" 
                |
                --- url_photo_large: "urlStorage"

1 Ответ

0 голосов
/ 05 июня 2018

Когда вы используете метод setValue(), вы переопределяете объект в этом конкретном месте, а когда вы используете метод updateChildren(), вы обновляете значения дочерних элементов, которые существуют в этом конкретном месте.Помните, что вы можете автоматически сопоставлять пары ключ / значение с POJO, который соответствует стандартам JavaBeans, или вы можете обращаться к каждой паре ключ / значение по отдельности, используя Map.

Предполагая, что у вас есть структура базы данных, которая выглядит какthis:

Firebase-root
    |
    --- items
         |
         --- itemIdOne
                |
                --- name: "ItemOne"

Простейшим способом удаления записи будет пользователь removeValue() непосредственно по ссылке:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
rootRef.child("items").child(itemIdOne).removeValue();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...