Javascript 如何限制用户在firebase实时数据库中每15分钟写一次文章

Javascript 如何限制用户在firebase实时数据库中每15分钟写一次文章,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我正在使用firebase实时数据库 我试图限制用户只允许他们在最新帖子发布至少15分钟后发布(这是为了防止帖子看起来像聊天) 我将如何实现这一点 我尝试过的是,包括每个帖子的时间戳,如果用户试图发布新帖子,则计算与当前时间的时间差。这是可行的,但是如果用户删除了以前的帖子,那么用户就可以立即再次发布。所以我需要一种不同的方法 我可以实现什么算法 谢谢你,圣诞快乐 您可以创建一个新字段来存储来自用户的帖子 User { . . . , PostHistory{ Post1: [t

我正在使用firebase实时数据库

我试图限制用户只允许他们在最新帖子发布至少15分钟后发布(这是为了防止帖子看起来像聊天)

我将如何实现这一点

我尝试过的是,包括每个帖子的时间戳,如果用户试图发布新帖子,则计算与当前时间的时间差。这是可行的,但是如果用户删除了以前的帖子,那么用户就可以立即再次发布。所以我需要一种不同的方法

我可以实现什么算法


谢谢你,圣诞快乐

您可以创建一个新字段来存储来自用户的帖子

 User {
   . . . , 
  PostHistory{
 Post1: [timestamp],
 Post2: [timestamp]
 . . . 
 },
 }

然后,每次用户创建新帖子时,您都可以使用postHistory进行检查

我会这样做。要求客户端应用程序进行多位置更新,同时写入post和时间戳。时间戳将存储在每个用户以及post中。您可以在包含POST的节点上编写一个安全规则,该规则检查以下所有内容必须为true才能成功写入:

  • 每个用户的时间戳仅使用ServerValue.timestamp指定
  • 每用户时间戳至少比现有值晚15分钟(如果不存在,则跳过此检查)
  • post自己的时间戳也被指定为具有相同的值

  • 一种可能的解决方案是在用户上存储最后一次发布时间,而不是单个发布?@grooveplex,所以我需要在用户发布的每一篇文章中更新用户的属性吗?这很有效,是的。谢谢您的回答!额外的步骤,但先进的安全检查,我会尝试实施,看看它如何去!谢谢你的回答!但是我应该为他们的每一篇文章贴上时间戳吗?或者只更新一篇?我认为你应该保留每一篇文章,因为以后你可以使用这些数据