我有一个ProductDatabase集合,其中存储了我在应用程序上显示的所有产品.集合中的每个文档都有一个名为‘sbd’的时间戳字段,表示每件商品的销售日期.我已经创建并上传了一个云函数,它每2小时判断一次数据库中的每个项目,以判断每个项目SBD字段是否通过.这是功能:
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp();
exports.delete = functions
.region("europe-west2")
.pubsub.schedule("every 2 hours").onRun((context) => {
const productsRef = admin.firestore().collection("TestDatabase");
const query = productsRef.where("SBD", "<", Date.now());
return query.get()
.then((querySnapshot) => {
const batch = admin.firestore().batch();
querySnapshot.forEach((doc) => {
batch.delete(doc.ref);
});
return batch.commit();
});
});
这个上传程序出现在Firebase云函数控制台中,并表示它每2小时被调用一次,但是没有任何产品从测试数据库中删除,即使它们都应该被删除.Js文件存储在Google云控制台中的一个存储桶中,该控制台具有所有必要的权限.数据库和云函数也在同一区域.