【问题标题】:Link between user and the database in firebase用户和firebase中的数据库之间的链接
【发布时间】:2017-10-01 19:38:04
【问题描述】:

Swift 3.0 iOS 11.x

所以使用标准将我的 swift 应用程序链接到 firebase

FirebaseApp.configure()

我使用我创建的用户登录它,身份验证注册良好,并在其上创建一个数据库。都很好。

我使用不同的设备尝试使用不存在的用户登录,但身份验证失败并且我无法访问数据库。都很好。

但是等等,我创建了另一个用户;并且鉴于我知道我发现我可以访问它的数据库的路径。这似乎是合理的,但事实并非如此。

假设我有 10 个不同的应用用户,他们都有自己的数据库;然而,只要他们对 firebase 进行身份验证,他们就有可能互相搞砸,因为每个人似乎都可以访问其他人的数据库,只要他们已经过身份验证。确实我看这个帖子... How to link between Authenticated users and Database in Firebase? 这似乎表明事情有点紧张,但显然不是。

我在这里错过了一些基本的东西,不是吗?

【问题讨论】:

    标签: ios swift firebase


    【解决方案1】:

    这是通过Firebase Rules 保护的。您可以查看documentation 以获取有关该主题的完整详细信息。

    您要查找的结构如下所示:

    {
      rules: {
        $uid: {
          ".read" = "auth.uid == $uid", 
          ".write" = "auth.uid == $uid"
        }  
      }
    }
    

    你必须小心这个,因为这并不适用于每个数据库结构。如果您为数据库根目录中的每个用户创建一个节点并将用户身份验证 ID 指定为密钥,则此方法将起作用。用户只能使用其 Firebase 身份验证 ID 访问节点中的数据,尽管在该节点中 所有 数据,也包括它的每个子节点。

    查看docs 了解更多信息。您可以在 Firebase 控制台的“数据库”选项卡中找到您的规则。

    【讨论】:

      猜你喜欢
      • 2017-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 2016-11-01
      • 2017-10-06
      • 1970-01-01
      相关资源
      最近更新 更多