반응형
함수 및 Firestore 사용 시 필드 값이 정의되지 않음
다음과 같은 기능이 있습니다.
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)
문서를 보면 제가 뭘 잘못하고 있는지 정말 알 수 없습니까?
// 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()
});
갱신하다
따라서 웹에서 동등한 기능을 사용하는 것이 효과적인 것으로 보입니다.admin.firestore.FieldValue.delete()
하지만 내가 nodejs 환경에 있으니 그것은 버그처럼 보입니다.파이어베이스가 그 사실을 확인하거나 부인할 수 있습니까?기꺼이 버그 보고서를 제출하겠습니다.
문서에 실수가 있었던 것으로 밝혀졌습니다. 올바른 가져오기 작업은 다음과 같습니다.const FieldValue = require('firebase-admin').firestore.FieldValue;
갱신하다
파이어베이스는 몇 시간 안에 응답했고 최대한 빨리 문서를 수정하고 있다고 말해야 합니다.
효과가 있었어요!
Firebase-admin 필요
const admin = require('firebase-admin')
이 상수 추가
const fieldValue = admin.firestore.FieldValue;
지금 사용
fieldValue.delete()
자세한 내용은 otcollect.com/post 을 참조하십시오.
여기서 github에서 솔루션을 찾을 수 있습니다.
유형 스크립트 사용
"firebase-admin": "^11.0.0"
"firebase-functions": "^3.22.0"
사용해야 합니다.
import { FieldValue } from 'firebase-admin/firestore'
에도 마찬가지입니다.TimeStamp
언급URL : https://stackoverflow.com/questions/47091940/fieldvalue-undefined-when-using-functions-and-firestore
반응형
'programing' 카테고리의 다른 글
문자열 형식의 %s과 %d의 차이점은 무엇입니까? (0) | 2023.06.27 |
---|---|
@ngrx/Store를 업그레이드할 때 '작업' 유형에 'payload' 속성이 없습니다. (0) | 2023.06.27 |
클래스와 모듈의 차이 (0) | 2023.06.27 |
PL/SQL: 세션 변수를 선언하려면 어떻게 해야 합니까? (0) | 2023.06.27 |
콘다와 아나콘다의 차이점은 무엇입니까? (0) | 2023.06.27 |