Перезапись документа в базе данных - PullRequest
0 голосов
/ 05 октября 2019

Я пытаюсь сохранить местоположение пользователя в Firebase, сохраняя результаты getLocation из службы определения местоположения Google.

Когда я использую следующий код:

Lat_Coordinate = location.getLatitude();
Lon_Coordinate = location.getLongitude();

Map<String, Object> user_location = new HashMap<>();
user_location.put( "Lat", Lat_Coordinate );
user_location.put( "Lon", Lon_Coordinate );

db.collection( "Users" ).document( auth.getUid() ).collection( "Location" ).add( user_location );

Он продолжает добавлять документы вРасположение коллекции. Однако моя цель всегда состоит в том, чтобы сохранить только один документ местоположения, который будет последней информацией.

Есть ли способ перезаписать уже существующий документ вместо добавления нового?

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

Спасибо

РЕШЕНИЕ:

В конце концов я снова создал документ с известным идентификатором, используя auth.getUID, и сохранил в нем местоположение. Поскольку идентификатор всегда один и тот же, он перезаписывает документ:

db.collection( "Users" ).document( auth.getUid() ).collection( "Location" ).document(auth.getUid()).set( user_location );

1 Ответ

0 голосов
/ 05 октября 2019

Проблема здесь в том, что существует вложенная коллекция для координат, и каждый раз, когда выполняется операция, создается новый документ

users/uid/location/map

Первый вариант - добавить местоположение в пользовательский документ какатрибут документа

db.collection( "Users" ).document( uid ).update("location", map);

Могут быть причины для добавления местоположения во вложенную коллекцию, например, для запросов. Для этого вы можете сделать это путем определения статического ключа документа:

db.collection( "Users" ).document( uid ).collection("location").document("static_key").update("location", map);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...