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

Когда я пытаюсь обновить документ Firebase, он показывает ниже сообщения об ошибке в console.

Необработанное отклонение обещания FirebaseError: «Функция DocumentReference.update () вызван с неверными данными. Неподдерживаемое поле значение: не определено (найдено в имени поля) "

Я попытался отладить, используя console.log(), и обнаружил, что переменная editedItem не распознается внутри метода обновления.

Как решить эту проблему

data: () => ({
    editedIndex: -1,
    editedItem: {
      id: 1,
      name: "SSFS",
      description: "XXXX"
    },
    newItem: {
      id: null,
      name: null,
      description: null
    }
  }),


    save() {
      if (this.editedIndex > -1) {
        // Update Category
        // Object.assign(this.desserts[this.editedIndex], this.editedItem);
        db.collection('categories').where('id', '==', this.editedItem.id).get().then( (querySnapshot) => {
          querySnapshot.forEach( (doc) => {
            doc.ref.update({
              name : this.editedItem.name,
              description : this.editedItem.description
            }).then(() => {
              this.$router.push('/categories') 
            })
          })
        })
      }
    }

Ошибка:

Необработанное отклонение обещания. FirebaseError: "Функция DocumentReference.update () вызвана с неверными данными. Неподдерживаемое значение поля: не определено (найдено в имени поля)

1 Ответ

0 голосов
/ 19 мая 2019

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

, вместо:

data: () => ({
editedIndex: -1,
editedItem: {
  id: 1,
  name: "SSFS",
  description: "XXXX"
},
newItem: {
  id: null,
  name: null,
  description: null
}

}),

Просто удалите функцию из этой реализации и просто представьте эти данныекак обычный объект.

Сделайте это:

data: {
editedIndex: -1,
editedItem: {
  id: 1,
  name: "SSFS",
  description: "XXXX"
},
newItem: {
  id: null,
  name: null,
  description: null
}

},

Это позволит вам получить доступ к объекту данных с помощью ключевого слова this и получить правозначение.

Теперь все, что вам нужно сделать, это изменить эти строки:

name : this.editedItem.name,
description : this.editedItem.description

На это:

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