Как обновить поле в списке в firebase? - PullRequest
0 голосов
/ 02 августа 2020

У меня есть эта коллекция в Firebase введите описание изображения здесь

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

Я получаю данные таким образом, но не могу их обновить.

this.firestore.collection('school').doc('254')
            .get().toPromise().then(doc => {
            if (doc.exists) {
                const student = doc.data().class.find(value => {
                    return value.name === 'john';
                });
                console.log('student', student);
                /*
                Here edit student.notes.math = newValue
                 */
            }
        });

PD: Я сейчас работаю с Angular 7.

1 Ответ

2 голосов
/ 02 августа 2020

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

См.:

this.firestore
    .collection('school')
    .doc('254')
    .update("class", NEW_FIELD_CONTENTS)

Вам нужно будет предоставить все содержимое обновленного поля класса . В Firestore нет операций, позволяющих обновлять элемент массива по указанному индексу c.

...