Firebase firestore读取可以在客户端实现吗?

Firebase firestore读取可以在客户端实现吗?,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我正在使用Firebase在React Native中开发一个应用程序,其中对firestore的每一次写入都在后端处理,而读取则不是。我在客户端实现读取,我担心用户会修改我的代码并开始读取数以百万计的文档,从而产生一大笔账单 firestore读取是否也应该在后端实现 Pd:现在,我的安全规则只允许读取记录的用户 如果有任何反馈,我将不胜感激 谢谢。在客户端读取甚至写入Firestore是可以的,但是您的应用程序应该为此做好准备 保护Firestore应用程序的最佳方法是使用 我建议您查看一下

我正在使用Firebase在React Native中开发一个应用程序,其中对firestore的每一次写入都在后端处理,而读取则不是。我在客户端实现读取,我担心用户会修改我的代码并开始读取数以百万计的文档,从而产生一大笔账单

firestore读取是否也应该在后端实现

Pd:现在,我的安全规则只允许读取记录的用户

如果有任何反馈,我将不胜感激


谢谢。

在客户端读取甚至写入Firestore是可以的,但是您的应用程序应该为此做好准备

保护Firestore应用程序的最佳方法是使用

我建议您查看一下该文件,尽管它似乎有点广泛,但可以在下一段中继续:

使用您的安全规则确保您只检索 用户应该有权访问的文档

它看起来有点微不足道,但它是如何避免恶意用户意外读取的基础。例如,如果“作者”字段与身份验证id匹配,则可以使用安全规则将读取限制为仅限经过身份验证的用户:

service cloud.firestore {
  match /databases/{database}/documents {
    match /stories/{storyid} {
      // Only the authenticated user who authored the document can read or write
      allow read: if request.auth != null && request.auth.uid == resource.data.author;
    }
  }
}
这样,即使用户在客户端更改了您的代码,也无法检索数千个文档,因为他只能访问有限数量的资源

这有许多其他的例子,可以很有用,并将帮助您了解如何保护您的数据

如前所述,每个规则集评估对文档访问调用也有限制:

超过任一限制都会导致权限被拒绝错误

因此,您可以确定,即使恶意用户想要多次调用同一文档,它也会在达到上述限制后被Firestore阻止,或者将停止使用缓存,而不是直接调用您的数据库

还有一件事我想提一提的是,你可以得到提醒或限制你的账单预算,这样你就不必担心意外费用,这更好地解释了这一点:

(在谷歌云平台控制台上)您可以为您的Firebase项目设置计费警报,以便在使用量达到一定水平时向您发出警报。虽然您无法将其配置为在某个时候关闭项目,但该警报通常可以很好地提醒您异常的使用模式

GCP文档现在也有一节介绍了


如果我使用其他提供者的身份验证,比如Auth0,例如@Emmanuel,该怎么办?是否有其他方法来保护客户端访问?