Есть ли метод для функции firebase, триггер onUpdate, с помощью которого я могу получить информацию о том, какое поле обновляется, а не полные данные? - PullRequest
0 голосов
/ 30 октября 2019
exports.updateEntry = functions.firestore
    .document('/customer1/{docID}')
    .onUpdate((change:any,context:any) =>{
        const id = context.params.docID;
        console.log("here"+id);
        const data  = change.after.data();
        const bdata = change.before.data()
        console.log("before"+JSON.stringify(bdata));
        console.log("after"+JSON.stringify(data));


    })

Это то, что можно найти в документах и ​​попробовать, но этот фрагмент кода дал мне все поля. # askfirebase

1 Ответ

2 голосов
/ 30 октября 2019

Для этой цели можно идеально использовать метод onUpdate(). Вы можете проверить, равняется ли свойство undefined, чтобы выяснить, существует ли поле.

Нет возможности найти все существующие поля без итерации всех возможных комбинаций.

Воткак проверить, существует ли в документе поле fieldname:

export const myFunction = functions.firestore.document('collection/{document}').onUpdate((change, context) => {

    const newValue = change.after.data();
    const oldValue = change.before.data();


    if (newValue!.fieldname === undefined) {
        //Field 'fieldname' doesn't exists on new snapshot, do something
    }
    if (oldValue!.fieldname === undefined) {
        //Field 'fieldname' doesn't exists on old snapshot, do something
    }

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