Firestore добавление нескольких данных под одним и тем же UID - PullRequest
0 голосов
/ 19 апреля 2019

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

Я пытаюсь добавить данные в облако Firestore с помощью UID. У меня есть UID, и добавить с UID без проблем, но когда я хочу добавить еще один, он удаляет старые данные и перезаписывает их. Я хочу добавить несколько данных под одним и тем же UID.

$('#form').submit(function(e) {
e.preventDefault();
let name = $('[name = name]').val();
let cityLAT = $('[name = cityLAT]').val();
let cityLONG = $('[name = cityLONG]').val();
let user = firebase.auth().currentUser;
let uid;
if(user != null) {
    uid = user.uid;
}
const ref = db.collection('campaigns').doc(uid);
ref.set({ name: name,
cityLAT: cityLAT,
cityLONG: cityLONG },{ merge: true });
$('[name = name]').val('');
$('[name = cityLAT]').val('');
$('[name = cityLONG]').val('');

1 Ответ

0 голосов
/ 20 апреля 2019

Если вы хотите «добавить данные с тем же идентификатором» (т. Е. Добавить данные в документ со следующим DocumentReference: db.collection('campaigns').doc(uid)), у вас есть две возможности:

  1. Используйте метод update(), который «обновляет поля в документе, на который ссылается DocumentReference». Однако , вы должны знать, что «обновление завершится неудачей, если применить его к несуществующему документу».
  2. Используйте метод set() с опцией слияние , который будет работать , даже если документ не существует . Смотрите также этот документ: https://firebase.google.com/docs/firestore/manage-data/add-data#set_a_document

Итак, в вашем случае использование метода set(), как описано выше, будет выглядеть так:

const ref = db.collection('campaigns').doc(uid);
ref.set(
   { name: name,
     cityLAT: cityLAT,
     cityLONG: cityLONG },
   { merge: true }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...