Firebase是否有办法限制安全规则中对所有公共数据的访问?

时间:2019-03-21 05:42:12

标签: firebase google-cloud-firestore

更新:根据建议编辑问题标题/正文。

Firebase存储通过脚本使浏览器可以公开访问所有公共可读的内容,因此没有什么可以阻止任何用户仅说db.get('collection')并将所有数据保存为他们的。

在更传统的数据库设置中,应用程序的前端要从后端提取数据,而用户至少要经历调整UI,然后抓取前端以提取越来越多的数据的额外麻烦(认为Twitter load more按钮)。

我的问题是,是否有可能限制用户单击一下访问整个数据库,同时又保持数据公开可用。

旧:

据我了解,任何可以看到来自Firebase数据存储的数据的用户都可以运行查询以提取所有这些数据。当数据本身具有任何价值时,这是不希望的,但是Firebase是如此易于使用的工具,对于几乎所有其他功能都非常有用。

是否有一种方法或最佳实践来构造数据或访问规则。用户可以看到数据,但是不能仅仅运行脚本来完全下载所有数据吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

Kato曾经在实时数据库安全性规则Firebase rate limiting in security rules?中实现了简化的写速率限制。 Cloud Firestore规则中可能有类似的可能。但是这种方法不适用于读取,因为您无法在执行读取的同时更新时间戳。

可以在数据库上limit what queries a user can perform。例如,将它们限制为一次只能读取50个文档:

allow list: if request.query.limit <= 50;