J'ai la fonction suivante:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const FieldValue = require('firebase-admin').FieldValue;
module.exports = functions.firestore
.document('students/{studentId}')
.onDelete(event => {
const student = event.data.previous.data();
const { id, semester } = student;
const classId = student.class;
const deleteObj = {};
deleteObj[id] = FieldValue.delete(); //Line 12, this is where the error orccurs
return admin
.firestore()
.collection('semesters')
.doc(semester)
.collection('students')
.doc(classId)
.update(deleteObj);
});
Chaque fois que je l'exécute, j'obtiens l'erreur suivante:
TypeError: Cannot read property 'delete' of undefined
at module.exports.functions.firestore.document.onDelete.event (/user_code/deleteStudent.js:12:37)
En regardant les docs je ne peux pas vraiment voir ce que je fais mal?
// Get the `FieldValue` object
var FieldValue = require("firebase-admin").FieldValue;
// Create a document reference
var cityRef = db.collection('cities').doc('BJ');
// Remove the 'capital' field from the document
var removeCapital = cityRef.update({
capital: FieldValue.delete()
});
Mise à jour
Ainsi, l'utilisation de l'équivalent Web semble fonctionner: admin.firestore.FieldValue.delete()
. Mais cela semble être un bug puisque je suis dans un environnement nodejs? Un Firebaser peut-il confirmer ou infirmer que ce soit le cas ou non? Je déposerais volontiers un rapport de bogue.
Il s'avère que c'était une erreur dans la documentation, l'importation correcte aurait dû être const FieldValue = require('firebase-admin').firestore.FieldValue;
Mise à jour
Il faut dire que Firebase a répondu en quelques heures et corrige les documents dès que possible.