Как обновить объект в одном месте, не перекрывая другие поля, используя Firebase Java Admin SDK? - PullRequest
0 голосов
/ 21 марта 2020
Users
    |_ randomPushKey
        |_ firstName: "John"
        |_ LastName: "Doe"
        |_ eyeColor: "Brown"
        |_ age: 24

рисунок 1

Использование Firebase Admin SDK Я хочу обновить вышеуказанного пользователя так, чтобы конечный результат был следующим:

Users
    |_ randomPushKey
        |_ firstName: "John"
        |_ LastName: "Doe"
        |_ eyeColor: "Black"
        |_ age: 25

figure 2

Мне не удалось найти метод, который обновляет данные в указанном c местоположении (без удаления значений, которые не отправляются в запросе), который в этом случае будет randomPushKey.

Самый близкий метод, который я смог найти, был databaseReference.updateChildren();, , однако , который принимает Map<String, Object> и , а не один Object, который является целью в мой случай.

1 Ответ

0 голосов
/ 22 марта 2020

Вы все еще хотите использовать updateChildren. Просто передайте ему пути только полей, которые вы хотите изменить, относительно ссылки, которую вы используете. Это называется обновлением нескольких местоположений, как обычно описано здесь .

Map<String, Object> map = new HashMap<>();
map.put("eyeColor", ...);
map.put("age", ...);
DatabaseRereference ref = ...; // This should point to Users/randomPushKey
databaseReference.updateChildren(map);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...