如何设置规则以限制匿名读/写 Firebase 数据库(Firestore 和 Realtime)对特定域的访问

Mat*_*att 2 firebase firebase-authentication google-cloud-firestore

我有一个应用程序,要求用户匿名读取和写入 Firebase 数据库。我需要一种方法来使用户只能从特定域匿名读取/写入。我在这里查看了类似的堆栈溢出问题

如何将 Firebase 数据库锁定到特定(电子邮件)域中的任何用户?

我尝试过类似的规则

{
  "rules": {
    ".read": "auth.token.email.matches(/.*@mydomain.wtf$/)",
    ".write": "auth.token.email.matches(/.*@mydomain.wtf$/)"
  }
}
Run Code Online (Sandbox Code Playgroud)

但这似乎只适用于电子邮件。

https://firebase.google.com/docs/rules/basics#cloud-firestore 我在官方文档中看到的所有规则示例似乎都没有提及有关域的任何内容。

有没有办法根据域限制匿名读/写访问?如果没有,是否有另一种方法可以安全地允许匿名用户读/写?如果还有另一种不涉及限制域的方法,我会洗耳恭听。

Dou*_*son 5

有没有办法根据域限制匿名读/写访问?

不,不可能根据网络域限制使用。人们可以使用公共 REST API 从互联网上的任何位置访问 Firebase 数据库。API 可用于实时数据库和 Firestore。无法验证访问是否发生在特定应用程序或浏览器域内。

还有另一种方法可以安全地允许匿名用户读/写吗?

您要么允许匿名访问,要么不允许。除此之外,没有其他方法可以“保护”匿名访问。