Данные в Firestore не обновляются - PullRequest
0 голосов
/ 26 октября 2018

Вот функция javascript, предназначенная для обновления FireStore, которая не работает.

Я буду очень рада, если кто-нибудь увидит проблему в коде.

function makeUpdate(key,name) {
    let theCollection = db.collection("InformationList"),
    infoUnit = theCollection.doc(key).get().then(function(doc) {
        if (doc.exists) {
            console.log("infoUnit -name-:" + doc.get("name"));
            console.log("infoUnit -telephone-:" + doc.get("telephone"));
            let updateDico = {};
            updateDico["name"] = name;
            doc.update(updateDico);
        } else {
            console.log("embassyUpdate --> No such document!");
        }
    }).catch(err => {
        console.log("Error getting documents (in makeUpdate)", err);
    });
}

Помимо того, что он не выполняет ожидаемое обновление, он печатает три сообщения в журналах:

  • infoUnit -name-: некоторое имя
  • infoUnit-телефон-: какой-то номер телефона
  • Ошибка при получении документов (в makeUpdate)

Из этого видно, что запись найдена в базе данных, как и ожидалось.Но в то же время происходит неизвестная ошибка.

Ответы [ 3 ]

0 голосов
/ 26 октября 2018

Не существует такого метода, называемого update(), который можно вызвать для doc DataSnapshot самого объекта.

Вам придется использовать метод set() в Ссылка на документ , полученная из doc.ref для обновления ссылки.

0 голосов
/ 26 октября 2018

Так я обновил свои данные.

     await db
      .collection('collectionName')
      .doc('documentId')
      .update({
        name: "Updated Name",
        telephone: "0000000000"
      });

Вам нужно знать идентификатор документа, и вы можете обновить свое значение следующим образом.

0 голосов
/ 26 октября 2018

В doc нет метода update() (который является DocumentSnapshot объектом). DocumentSnapshot просто содержит данные, прочитанные из get(). Если вы хотите записать данные обратно в документ, вам необходимо использовать объект DocumentReference , вероятно, тот же, который вы получили при вызове theCollection.doc(key).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...