【发布时间】:2020-10-13 17:50:41
【问题描述】:
我想在我的 Firestore 数据库中的任何级别创建或更新文档时相应地设置 createdAt 和 updatedAt。
看来wildcards 不支持多级,所以我最终编写了这样的代码(对于createdAt):
exports.onDocCreate = functions.firestore
.document("{collection}/{docId}")
.onCreate((snap, context) => {
const { collection, docId } = context.params;
return db.collection(collection).doc(docId).set(
{
createdAt: admin.firestore.Timestamp.now(),
},
{ merge: true }
);
});
exports.onSub1DocCreate = functions.firestore
.document("{c0}/{d0}/{c1}/{d1}")
.onCreate((snap, context) => {
const { c0, d0, c1, d1 } = context.params;
return db.doc(`${c0}/${d0}/${c1}/${d1}`).set(
{
createdAt: admin.firestore.Timestamp.now(),
},
{ merge: true }
);
});
exports.onSub2DocCreate = functions.firestore
.document("{c0}/{d0}/{c1}/{d1}/{c2}/{d2}")
.onCreate((snap, context) => {
const { c0, d0, c1, d1, c2, d2 } = context.params;
return db.doc(`${c0}/${d0}/${c1}/${d1}/${c2}/${d2}`).set(
{
createdAt: admin.firestore.Timestamp.now(),
},
{ merge: true }
);
});
这涵盖了 3 个级别,我可以继续使用相同的模式来支持我需要的任何级别。
有没有更好的办法?
【问题讨论】:
标签: google-cloud-firestore google-cloud-functions