Итак, я пытаюсь обновить некоторые поля в моей базе данных, используя firebase, используя функции машинописного облака. Таким образом, по-видимому, я использовал два метода на снимках экрана соответственно, в первом случае ключи, кажется, установлены в любое, а не переменная, которую я передаю ... во втором примере, который я использую переменная данных для передачи карты, но метод также выдает ошибку данных переменной
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp(functions.config().firebase);
const db = admin.firestore();
export const onCreate = functions.firestore.document('Messages/{MessageId}').onCreate((snapshot, context) => {
const newStation = snapshot.get('station');
const newError = snapshot.get('error');
const senderId = snapshot.get('from');
db.collection('Tokens').get().then((snapshots) => {
const tokens: string[] = [];
if (snapshots.empty) {
console.log('No Devices Connected.');
return;
} else {
// for (var token in snapshots.docs) {
// tokens.push(token.data().devtoken);
// }
snapshots.forEach((token) => {
tokens.push(token.get('devtoken'));
});
const payload = {
'notification': {
'title': senderId,
'body': newStation + ' reported ' + newError,
'sound': 'default',
},
'data': {
'sendername': senderId,
'message': newStation + ' reported ' + newError,
}
};
return admin.messaging().sendToDevice(tokens, payload).then((response) => { console.log('Pushed to all devices'); }).catch((e) => { console.log(e); });
}
}
).catch((e) => { console.log(e); });
const logMessage = 'message from ' + senderId + ' for ' + newStation + ' with a ' + newError + ' was deleted';
console.log(logMessage);
return;
});
export const onDelete = functions.firestore.document('Messages/{MessageId}').onDelete((snapshot, context) => {
const senderId: string = snapshot.get('from');
const delStation: string = snapshot.get('station');
const delError: string = snapshot.get('error');
const path: string = senderId + '/' + delStation;
const error: string = delError + 'Error';
const desc: string = delError + 'Desc';
const data = {};
data[error] = false;
data[desc] = '';
// db.doc(path).update({ error: false, desc: '' }).then((value) => {
// console.log('Error value updated');
db.doc(path).update(data).then((value) => {
console.log('Error value updated');
}).catch((e) => {
console.log(e);
})
const delLogMessage = `Message from ${senderId} for ${delStation} with a ${delError} was deleted`;
console.log(delLogMessage);
return;
});