【问题标题】:How to use queryEqual(toValue:childKey:) in Firebase SDK for iOS properly?如何在 Firebase SDK for iOS 中正确使用 queryEqual(toValue:childKey:)?
【发布时间】:2018-12-04 22:46:59
【问题描述】:

我是 NoSQL 和 Firebase 的新手。我有这样的数据库路径“作家”。

我尝试使用此代码查找电子邮件“test@test.com”的任何用户:

ref.child("writers").queryEqual(toValue: "test@test.com", childKey: "email").observeSingleEvent(of: .value, with: { snap in
    print (String(describing: snap.value));
}

但我得到的只是控制台上的Optional(<null>)。我的代码有什么问题?我认为这很简单,但尽管我尝试了任何修复,但我无法让它工作。

如果我使用代码,我可以成功获取所有作者数据:

ref.child("writers").observeSingleEvent(of: .value, with: { (snap) in
    print (String(describing: snap.value));
}

【问题讨论】:

  • 不要在 Firebase 中使用数组。第二件事你有 4 个数字键,然后是一个不相关的键字符串。不知道为什么,但这听起来像是您没有以一致的方式创建密钥。不要忘记添加 .orderBy。

标签: ios swift firebase firebase-realtime-database nosql


【解决方案1】:

正确的语法是:

ref.child("writers").queryOrdered(byChild: "email").queryEqual(toValue: "test@test.com").observeSingleEvent(of: .value, with: { snap in
  ...

您使用的重载用于不同的(并且不太常见)用例。

另请参阅有关在 Swift 中查询 Firebase 的其他一些问题:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    • 2017-07-24
    相关资源
    最近更新 更多