【发布时间】:2022-02-08 13:51:11
【问题描述】:
我想从文档快照中检索字段值,该文档快照是 firebase 存储中文件的 URL,如果文档的创建时间在 24 小时之前,则从 firebase 存储以及 firestore 文档中删除该文件。
我可以使用以下代码成功删除过期的 Firestore 文档:
const functions = require("firebase-functions");
const admin = require("firebase-admin");
const { firestore } = require("firebase-admin");
admin.initializeApp();
exports.removeExpiredDocuments = functions.pubsub.schedule("every 1 hours").onRun(async (context) => {
const db = admin.firestore();
const now = firestore.Timestamp.now();
const ts = firestore.Timestamp.fromMillis(now.toMillis() - 86400000); // 24 hours in milliseconds = 86400000
const snapshots = await db.collection("photos").where("timestamp", "<", ts).get();
let promises = [];
snapshots.forEach((snap) => {
promises.push(snap.ref.delete());
});
return Promise.all(promises);
});
但我不知道如何从 forEach 块内的文档快照中检索字段值(文件的 URL)并从 firebase 存储中删除文件。
这是 firestore 数据库:
要获取photourl的字段值
提前致谢!
【问题讨论】:
标签: node.js firebase google-cloud-firestore google-cloud-functions google-cloud-storage