Как создать узел и обновить его на Firebase - PullRequest
0 голосов
/ 16 мая 2018

Я должен сохранить свое местоположение в Firebase и постоянно обновлять его. В настоящее время я могу сохранить его, но при изменении местоположения создается новый узел, как я могу создать его только для одного узла в начале моего приложения и обновлять его при каждом изменении позиции? Спасибо.

Код:

DatabaseReference rootRef = database.getInstance().getReference();
String key = firebaseData.child("Posicion/").push().getKey();
LatLng latLng = new LatLng(latitude,longitude);
Map<String, Object> childUpdates = new HashMap<>();
childUpdates.put("/Posicion/" + key, latLng);
rootRef.updateChildren(childUpdates);

Создает эту структуру: https://i.stack.imgur.com/SlOQq.png

1 Ответ

0 голосов
/ 17 мая 2018

Вы меняете ключи узлов между вставкой и обновлением.

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

-locations

- id (thisодин должен быть уникальным идентификатором, который вы создаете при запуске приложения, или идентификатором зарегистрированного пользователя)

---- currentLatitude: "xxxxxx"

---- currentLongitude: "yyyyyy"

В этом случае реализация будет выглядеть примерно так:

DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

mDatabase.child("locations").child(user.getUid()).child("currentLatitude").setValue("xxxxxx");
     mDatabase.child("locations").child(user.getUid()).child("currentLongitude").setValue("yyyyyy");
...