web-dev-qa-db-ja.com

関数とFirestoreを使用する場合、FieldValueは未定義

次の機能があります。

_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);
  });
_

実行するたびに、次のエラーが発生します。

_TypeError: Cannot read property 'delete' of undefined
    at module.exports.functions.firestore.document.onDelete.event (/user_code/deleteStudent.js:12:37)
_

docs を見て、私が何を間違っているのか本当にわかりませんか?

_// 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()
});
_

更新

したがって、同等のWebを使用すると機能するようです:admin.firestore.FieldValue.delete()。しかし、私はnodejs環境にいるのでそれはバグのようです? Firebaserは、そうであるかどうかを確認または拒否できますか?バグレポートを喜んで提出します。

27
Chris

ドキュメントの間違いであることが判明しました。正しいインポートはconst FieldValue = require('firebase-admin').firestore.FieldValue;でした

更新

Firebaseは数時間以内に応答し、ドキュメントをできるだけ早く修正していることに注意してください。

33
Chris