.update в Firestore, заменяет все данные - PullRequest
0 голосов
/ 27 ноября 2018

Я уже просмотрел документацию, найденную здесь: https://firebase.google.com/docs/firestore/manage-data/add-data#update-data.

У меня есть страница профиля, где люди могут обновлять определенный контент, например номер телефона.

Даже если я использую update все содержимое страницы профиля заменяется при нажатии кнопки отправки.Я только хочу, чтобы данные, которые отличаются от того, что находится в базе данных, были обновлены.Как мне это сделать?

    const profileData = {
      optInTexts: this.form.optInTexts,
      optInWhatsappMessages: this.form.optInWhatsappMessages,
      subscribeToMailingList: this.form.subscribeToMailingList,
      phoneWhatsapp: e164Whatsapp,
      phone: e164,
      workerSkills: this.form.workerSkills
    };

    const profileRef = await db.collection('users')
      .where("uid", "==", this.userId)
      .get()
      .then(snapshot => {
        snapshot.forEach(function (doc) {
          db
            .collection("users")
            .doc(doc.id)
            .update({...profileData});
        });
      });

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете использовать метод set вместе с { merge: true }, например:

ref.set({
  ...profileData
}, { merge: true });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...