Я хочу добавить значения под тем же ключом - PullRequest
1 голос
/ 18 апреля 2019
"locs" : {
        "-Lci8jGrXCEP-r6LBxD8" : {
          "title" : "Marriage"
        },
        "-Lci9UNW80J2Jap_UHwj" : {
          "title" : "Visit"
        }
      },

Моя база данных Firebase в реальном времени выглядит следующим образом.Я хочу добавить три других значения под этой же клавишей, а именно широту, долготу и адрес.

  mDatabase.child("users").child(mUserId).child("locs").push().child("title").setValue(text.getText().toString());

Это работает в первом действии.Во втором упражнении я получаю lat и long и сохраняю его в строке lat и long соответственно.Теперь я хочу, чтобы эти два значения и addr были сохранены под тем же ключом.

Это мой ожидаемый результат

"locs" : {
        "-Lci8jGrXCEP-r6LBxD8" : {
          "title" : "Marriage"
          "lat"   : "xxx.xxxxxx"
          "long"  : "xxx.xxxxxx"
          "addr"  : "Street 112 xxxx"
        },
        "-Lci9UNW80J2Jap_UHwj" : {
          "title" : "Visit"
          "lat"   : "xxx.xxxxxx"
          "long"  : "xxx.xxxxxx"
          "addr"  : "Street 1212 Flat 6"
        }
      },

1 Ответ

1 голос
/ 18 апреля 2019

Вам нужно будет сделать две вещи:

  • Убедитесь, что второе действие знает ключ для обновления.Вы можете сделать это либо путем передачи ключа от первого действия к следующему (в намерении или в общих настройках), либо путем поиска его во втором действии на основе какого-то другого уникального свойства, значение которого вам известно.
  • Обновите местоположение для этого ключа вместо создания нового.Вы делаете это, вызывая update() вместо set() и используя child(key) вместо push().Итак:

    Map<String, Object> values = new HashMap<String, Object>();
    values.put("title", "new updated title");
    values.put("newprop", "value of new prop");
    mDatabase.child("users").child(mUserId).child("locs").child(key).updateChildren(values);
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...