Как быть уверенным, что setValue для firebase child сработал успешно? - PullRequest
0 голосов
/ 25 марта 2020

Я использую addOnCompleteListener, но мне нужно установить значение для более чем одного ребенка за раз, не будет хорошо, если я проверю, обновился ли первый ребенок, затем обновил 2-го, а затем 3-го ... et c, это будет очень сложно

Также мне нужно проверить addOnFailureListener, addOnCanceledListener, и когда они сработают, и какие наилучшие действия следует предпринять в этих случаях

1 Ответ

1 голос
/ 25 марта 2020

Из документов:

public Task<Void> setValue (Object value)

Установите данные в этом месте на заданное значение. Передача null в setValue () удалит данные в указанном месте. Собственные типы, принятые этим методом для значения, соответствуют JSON типам:

Boolean

Long

Double

String

Карта

Список

Поэтому, если у вас есть несколько setValue(), вы можете сделать следующее:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Users");
Map<String, Object> values = new HashMap<>();
values.put("name","peter");
values.put("age","100");
ref.setValue(values).addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            System.out.println("completed");
        }
    });

Из них вы можете использовать класс pojo вместо карты.

https://firebase.google.com/docs/reference/android/com/google/firebase/database/DatabaseReference#setValue (java .lang.Object)

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