【问题标题】:Firestore rules for creating a user用于创建用户的 Firestore 规则
【发布时间】:2020-05-25 12:57:13
【问题描述】:

我是 firebase 新手,正在尝试使用 firebase 身份验证以及 firestore 数据库。看起来所有的安全都在于我们设置的规则,但是我想知道以下几点:

  1. 是否可以在不使用 firebase 身份验证系统的情况下应用基于用户身份验证的规则?
  2. 如何确保仅通过我的应用程序创建用户?拥有我的 firebase 凭据(很容易在浏览器中公开)的任何人都能够将用户添加到数据库吗?我知道 Firestore 上没有基于域的锁定,但用户创建至少基于域吗?

谢谢!

【问题讨论】:

    标签: firebase google-cloud-firestore firebase-authentication


    【解决方案1】:

    Firebase 身份验证是在安全规则中填充 request.auth 变量的唯一方法。因此,如果您想基于用户进行保护,则需要在 Firebase 身份验证中创建该用户。

    但是你可以:

    • 使用匿名身份验证为用户生成 UID,无需他们输入凭据。
    • 如果您有现有的登录系统,则可以将其连接到 Firebase 身份验证作为 custom provider。这将使您的用户详细信息在安全规则中的request.auth 中可用。

    要将您的 Firestore 数据库的访问权限锁定给来自特定域的用户,您可以在安全规则中使用如下内容:

    request.auth.token.email_verified && 
      request.auth.token.email.matches(".*@google.com")
    

    因此,只有在用户验证了其个人资料中的电子邮件地址并且该电子邮件地址来自他给定的域时,才允许访问。

    【讨论】:

      猜你喜欢
      • 2020-05-28
      • 1970-01-01
      • 2018-05-20
      • 2019-03-06
      • 1970-01-01
      • 1970-01-01
      • 2018-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多