我正在尝试通过功能从Firestore删除旧的通知。 我不知道如何将所有文档及其子集合丢到一个集合中。
编辑:
这是我尝试过的:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.deleteoldnotifications = functions.https.onRequest((req: any, res: { status: (arg0: number) => { send: () => void; }; }) => {
const timeNow = new Date();
const db = admin.firestore();
db.collection('notification').get().then((snap: { forEach: (arg0: (collection: any) => void) => void; }) => {
snap.forEach((collection: any) => {
db.collection('notification').doc(collection.id).collection('messages').get().then((snapshot: { forEach: (arg0: (doccollection: any) => void) => void; }) => {
snapshot.forEach((doccollection) => {
const durations = new Date(doccollection.data().duration);
if (durations <= timeNow) {
doccollection.delete();
console.log('duration: ',doccollection.duration);
}
});
});
});
});
return null;
});
该功能因超时而结束。
如何去扔通知集合并删除旧的?
答案 0 :(得分:2)
没有functions.firestore
这样的东西,这恰恰是错误消息所说的。
如果要使用不是由Firestore本身触发的功能来访问Firestore,请使用Admin SDK来执行。您已经在代码中导入了Admin SDK,因此所需要做的只是:
admin.firestore().doc(...)