我通过 firebase 拥有这个 firestore 数据库。该数据库包含客户可以“下载”的文档(即查看数据并将其在本地解析为模型类)。
我现在想做的是将某些文档标记为“精选”。如果过去 7 天的平均下载次数是前 14 天的平均下载次数的两倍以上,并且下载次数超过某个阈值,则该文档为特色。 我仍然可能会使用此功能。
但是为了做这个标记,我需要运行一个函数来每天读取每个文档的下载计数(我把这个下载计数放在文档的数据中),存储这些值并将其与存储早期的值。
我现在想知道的是,firebase 是否具有这样的功能,可以让我托管这样的功能,还是我真的需要设置自己的外部服务器(当然不是我的桌面)只是为了这样做?
答案 0 :(得分:1)
您可以使用 Firebase Scheduled 函数。您可以在 here 中找到有关它们的更多信息。
答案 1 :(得分:1)
您可以安排一个 cron 作业每隔几个小时运行一次,也可以设置一个文档 侦听器来监听对文档或集合。
这完全取决于您想要的结果。
db.collection("cities").doc("SF")
.onSnapshot((doc) => {
var source = doc.metadata.hasPendingWrites ? "Local" : "Server";
console.log(source, " data: ", doc.data());
});
或
exports.scheduledFunctionCrontab = functions.pubsub.schedule('5 11 * * *')
.timeZone('America/New_York') // Users can choose timezone - default is America/Los_Angeles
.onRun((context) => {
console.log('This will be run every day at 11:05 AM Eastern!');
return null;
});