我正在努力解决一些语法问题
exports.deleteProject = functions.firestore.document('{userID}/projects/easy/{projectID}').onDelete(event => {
我有的功能
console.log(event)
输出
{ data:
DocumentSnapshot {
_ref: DocumentReference { _firestore: [Object], _referencePath: [Object] },
_fieldsProto: undefined,
_readTime: undefined,
_createTime: undefined,
_updateTime: undefined },
eventId: 'd4079c38-2dc1-44e2-924d-fa27c3a95f8b-0',
eventType: 'providers/cloud.firestore/eventTypes/document.delete',
notSupported: {},
params:
{ userID: 'xxxxxxxxxxxxxx',
projectID: 'dddddddddddd' },
resource: 'projects/nnnnnnnnn/databases/(default)/documents/xxxxxxxxxxxxxx/projects/easy/dddddddddddd',
timestamp: '2017-11-11T04:41:16.712975Z' }
我遇到的问题是我似乎无法弄清楚引用数据库的语法(以及随后的另一个集合/文档路径)本身或我打印事件时出现的不同元素。
任何帮助将不胜感激
答案 0 :(得分:3)
当您在Cloud Functions中收到Firestore事件时,它是Event<DeltaDocumentSnapshot>
类型的对象,这意味着event.data
的类型为DeltaDocumentSnapshot。这样,您就可以通过event.data.ref.firestore
使用收到的事件访问整个数据库。这为您提供了一个Firestore对象,您可以使用该对象访问Firestore实例中的集合和文档。例如:
const firestore = event.data.ref.firestore
const docref = firestore.doc('collection/doc')
此外,您可以使用Admin SDK(及其Firestore API)直接从任何云功能访问Firestore,而无需Firestore事件。