web-dev-qa-db-fra.com

FieldValue non défini lors de l'utilisation de fonctions et de Firestore

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.

27
Chris

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.

33
Chris