程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为什么 Google Firebase Cloud Firestore 有“写入”、“更新”安全规则,而我们不应该允许用户直接在数据库上写入?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决为什么 Google Firebase Cloud Firestore 有“写入”、“更新”安全规则,而我们不应该允许用户直接在数据库上写入??

开发过程中遇到为什么 Google Firebase Cloud Firestore 有“写入”、“更新”安全规则,而我们不应该允许用户直接在数据库上写入?的问题如何解决?下面主要结合日常开发的经验,给出你关于为什么 Google Firebase Cloud Firestore 有“写入”、“更新”安全规则,而我们不应该允许用户直接在数据库上写入?的解决方法建议,希望对你解决为什么 Google Firebase Cloud Firestore 有“写入”、“更新”安全规则,而我们不应该允许用户直接在数据库上写入?有所启发或帮助;

我正在实施一个使用 Google Firebase Cloud Firestore 的应用程序。因为我的应用有很多小的写请求,如果我在中间使用 Firebase Cloud Functions 会非常昂贵。因此,我在 Should we allow users to write to database directly 上提出了一个问题。所有的回应都说我不应该这样做。那么,为什么 Google Firebase Cloud Firestore 有“写入”、“更新”安全规则?无论如何,用户不应写入数据库。

EDIT(回应 DIGI 的评论和回答): 从答案来看,我们似乎可以改用 firebase 规则。那么,我们应该如何正确使用它们呢?

例如,我的应用会在用户打开地图并将其更新到数据库时记录用户的位置,以便用户的朋友可以实时查看。我应该如何确保数据采用{longtitude: double,latitude: double,@R_696_6561@amp: @R_696_6561@amp} 的形式,并且用户不会更改文档中的任何其他少数内容?

解决方法

这是标准 MySQL 数据库的常见误解,类似的地方是服务器充当逻辑层并位于客户端和数据库之间。

Firebase 在称为 security rules 的简化版本中仍然拥有这一层逻辑,它允许从客户端进行基本的读取和写入操作。该设计是通过将计算能力从服务器后端转移到客户端,通过将需求分配给用户的设备来节省后端的服务器计算成本。

SE 中列出的问题来自那些不知道您可以在规则和项目中放置的限制和限制,以控制 Firebase 和您的应用可以请求的内容。

澄清一下,Firebase 不会隐藏您的数据库密钥,它们很容易访问,是的,理论上用户可以使用您的数据库后端创建客户端。但只要规则到位、条件定义、Cors 配置和应用源设置被强制执行,您就可以防止所有这些。

,

对于多次写入,实时是理想的选择,因为与 Firestore 写入相比,它可以更快、更经济地处理数据。 因此,我的示例将根据您的编辑以实时数据库的意图进行响应。

{
 “rules”: {LOCATIOn”: {
 “$uid”: {
 “.validate”: “newData.hasChildren(['longtitude','latitude','@R_696_6561@amp']) &&
               newData.child('longtitude').isnumber() &&
               newData.child('latitude').isnumber() &&
               newData.child('@R_696_6561@amp').val() <= now”,}
 }
 }
}

我强烈建议熟悉一些核心概念

https://medium.com/@juliomacr/10-firebase-realtime-database-rule-templates-d4894a118a98

此处的完整文档:https://firebase.google.com/docs/reference/security/database

大佬总结

以上是大佬教程为你收集整理的为什么 Google Firebase Cloud Firestore 有“写入”、“更新”安全规则,而我们不应该允许用户直接在数据库上写入?全部内容,希望文章能够帮你解决为什么 Google Firebase Cloud Firestore 有“写入”、“更新”安全规则,而我们不应该允许用户直接在数据库上写入?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。