0

我在当地的聚会上发表了关于 Firebase 的基础知识 ( http://szimek.github.io/presentation-firebase-intro ) 的演讲,并从观众那里得到了 2 个有趣的问题。

想象一下,您有一个类似 Twitter 的应用程序,其中包含数十亿条推文,并且每个人都可以读取它们。

  1. 有没有办法限制用户可以获取的数据大小(在服务器端)?即使我有tweetsRef.limit(10)电话,用户也可以轻松地将其更改为tweetsRef.limit(10e9)并尝试获取所有推文。

  2. 如何防止用户更新现有记录(即使它是由该用户创建的),但允许他们删除现有记录(仅当它是由该用户创建时)?

4

1 回答 1

1

如果您担心限制操纵,您可以只在您的服务器而不是客户端(如您所建议的那样)上获取推文,这样用户就无法操纵限制。

对于您的第二个问题,这取决于您要如何处理删除。通常您实际上并不希望删除该对象,因此您可以只授予创建用户对该deleted属性的写入权限。或者,如果您希望他们实际删除该对象,请检查用户是否是创建者,以及 的值newData是否为null

下面是来自@Kato 评论的示例安全规则(允许写入/删除,阻止更新):

".write": "!data.exits() || !newData.exists()"
于 2013-11-07T15:20:45.750 回答