【问题标题】:Can't read firebase Data无法读取 Firebase 数据
【发布时间】:2018-01-18 04:04:15
【问题描述】:

我有一个项目,我想在不进行身份验证的情况下读取 firebase 数据我已经将我的数据库规则更改为以下内容:

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

我也试过了

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

我的代码是:

 db = Database.database().reference()
    db.child("users").observe(.value, with: { snapshot in

        print(snapshot)

    })

}

它没有给我任何错误,只是没有提取数据

【问题讨论】:

  • 在控制台中查看您的规则并在那里测试它们
  • 试试true 不带引号:".read": true, .. 正如@PeterHaddad 提到的:您可以使用模拟器在 Firebase 控制台中测试您的规则
  • @RosárioPereiraFernandes:虽然true 不带引号更直接的意思,但"true" 的工作方式相同(因为它是truthy)。
  • 您共享的代码看起来不错,因此问题可能出在其他地方。你如何运行这段代码?你如何检查它没有提取数据?
  • @FrankvanPuffelen 我在 Xcode 上运行它,我知道因为它不会在控制台中打印任何内容

标签: ios swift firebase firebase-realtime-database


【解决方案1】:

如果您确保您的设置正确。检查此代码。

let ref = Database.database().reference(withPath: "users")
print(ref)
ref.observeSingleEvent(of: .value, with: { snapshot in
if !snapshot.exists() { return }
print(snapshot)
})

【讨论】:

    【解决方案2】:

    我找到了解决方案。正如@Rosário Pereira Fernandes 所说,错误在于我的firebase 数据库规则中有引号。

    像这样:

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

    【讨论】:

      猜你喜欢
      • 2020-10-23
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多