为了账号安全,请及时绑定邮箱和手机立即绑定

使用 firebase 实时数据库和 firebase 函数创建过期功能?

使用 firebase 实时数据库和 firebase 函数创建过期功能?

白猪掌柜的 2022-12-29 13:47:22
简短的一般性问题:是否有一个侦听器(使用 firebase 实时、函数或一般)我可以设置存储在 firebase 实时对象中的日期,在日期到期时删除该对象?很长的具体问题:我正在使用 firebase 实时数据库和 firebase 功能来构建一个市场应用程序,用户可以在其中对产品出价,但这些出价将在应用程序中存储的日期到期。用户还可以按最高或最低出价搜索/过滤产品,我使用 algolia 进行全文搜索和类型过滤。为了最大限度地降低成本,我构建了我的数据库,如下所示:出价 {expirationDate, productID, ... 等} 产品 {highestBidID, highestBidCost, lowestBidID, lowestBidCost, ...等}(algolia 模型对所有可搜索/可过滤变量具有相似的结构)我遇到的问题是如何删除过期的出价,然后在出价包含存储值的情况下更新产品模型和 aloglia 模型。我能想到的唯一方法(考虑到我已经设置的数据库)是在出价项目上使用某种监听器,如果出价到期并且出价是最高或最低出价,则调用另一个更新产品模型的函数和 algolia 模型分别处理下一个最高/最低出价。我强烈反对每次提取产品时只更新最高/最低出价,因为这会导致很多额外的呼叫,增加费用并减慢一切。我还必须从 algolia 模型中删除最高/最低出价,并且仅在从 algolia 返回列表后再次进行过滤,从而大大增加调用次数。这种听众存在吗?有一个更好的方法吗?
查看完整描述

1 回答

?
梦里花落0921

TA贡献1772条经验 获得超5个赞

是否有一个侦听器(使用 firebase 实时、函数或一般)我可以设置存储在 firebase 实时对象中的日期,在日期到期时删除该对象?

不,没有一种简单的方法可以做到这一点。

您将不得不编写代码来安排使用其他机制或产品删除节点。我写了一篇博客,描述如何使用 Cloud Tasks 作为安排删除的机制使 Firestore 文档过期 (TTL) 。这同样适用于实时数据库中的节点。


查看完整回答
反对 回复 2022-12-29
  • 1 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信