【问题标题】:Firebase Rules settingsFirebase 规则设置
【发布时间】:2017-06-15 04:58:56
【问题描述】:

我决定在旧的 objectiv C iOS 应用中使用 Firebase。

我按照此处给出的说明安装了我需要的东西: Add Firebase to your iOS app 登录到 Firebase 后。 然后我按照这里给出的说明进行操作: https://firebase.google.com/docs/database/ 为了使用数据库。

此时基本可以了,我可以写一些数据了。 不过我对规则设置有这个问题。

我遵循了此处提供的信息: https://firebase.google.com/docs/database/security/quickstart

但是如果我这样设置我的规则:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

它按预期工作。另一方面,如果我这样设置它们:

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

这是默认设置,应该允许我从我的应用程序写入数据,但它不起作用。

有什么问题?

【问题讨论】:

  • 听起来用户没有登录。
  • 好的。听起来我没有完全理解我读到的内容。实际上再次阅读我可以看到你是对的。我希望我的应用程序(但只有这个应用程序)能够访问数据库进行写入和读取,无论用户是谁,但我也想在不要求用户登录的情况下执行此操作。这可能吗?
  • 访问权限授予用户,而不是特定应用。见stackoverflow.com/questions/18005984/…

标签: ios firebase firebase-realtime-database firebase-security


【解决方案1】:

如果您不希望用户登录,您可以自动匿名验证用户。

Authenticate with Firebase Anonymously on iOS

那么你可以使用:

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

【讨论】:

    【解决方案2】:

    阅读您回复cartant的评论后,很明显您希望您的应用用户无需登录即可访问您的database进行读写。

    我也想在不要求用户登录的情况下执行此操作。这可能吗?

    可以让您的用户无需任何签名过程即可访问您的数据库。

    其实

    {
      "rules": {
        ".read": true,
        ".write": true
      }
    }
    

    此规则表示您无需登录即可向用户提供readwrite 权限。

    另一方面

    {
      "rules": {
        ".read": "auth != null",
        ".write": "auth != null"
      }
    }
    

    在此规则中,您提到必须在向您的用户授予 readwrite 权限之前执行您的身份验证 ("auth != null")

    所以要实现您的目标,只需使用默认规则,即无需身份验证的规则。

    【讨论】:

    • 确实,正如在开始的帖子中提到的,我已经有了这个工作。但在这种情况下,我将完全访问整个单词。这有点过分了。请注意:这不是默认规则。
    猜你喜欢
    • 1970-01-01
    • 2020-10-10
    • 2019-01-18
    • 2019-06-03
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 2017-06-02
    相关资源
    最近更新 更多