使用函数和Firestore时,当FieldValue未定义时

12 浏览
0 Comments

使用函数和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, 这是发生错误的地方
    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)

查看文档,我真的看不出我做错了什么?

// 获取`FieldValue`对象
var FieldValue = require("firebase-admin").FieldValue;
// 创建一个文档引用
var cityRef = db.collection('cities').doc('BJ');
// 从文档中删除'capital'字段
var removeCapital = cityRef.update({
    capital: FieldValue.delete()
});

更新

所以,使用Web等效似乎有效:admin.firestore.FieldValue.delete()。但这似乎是一个错误,因为我在一个Node.js环境中?是否有任何Firebase用户可以确认或否认这种情况?我愿意提交一个错误报告。

0