如何在Firebase SDK for iOS中正确使用queryEqual(toValue:childKey:)?

Che*_*ong 4 nosql ios firebase swift firebase-realtime-database

我是 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));
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

Fra*_*len 5

正确的语法是:

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

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

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