我如何在Firebase中进行查询?在Oracle SQL查询将查询&在Firebase中的位置(swift 3)
"select * from users where username = "SomeUser"
我需要做同样的火力地堡,斯威夫特3
我如何在Firebase中进行查询?在Oracle SQL查询将查询&在Firebase中的位置(swift 3)
"select * from users where username = "SomeUser"
我需要做同样的火力地堡,斯威夫特3
您需要使用queryOrderedByChild
和queryStartingAtValue
。这应该让你开始正确的方向。
let username = "SomeUser"
FIRDatabase.database().reference.child("users").queryOrderedByChild("username").queryStartingAtValue(username).queryEndingAtValue(username).observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
}
为什么你需要'.queryStartingAtValue(username)'和'.queryEndingAtValue(username)'?是否有更简单的方法来搜索某个值的所有结果?我看到有一些'queryEqual(toValue:Any?)'函数。 – MarksCode
斯威夫特3 & &火力地堡3
我希望这将有助于你理解。在这里,我们去
这里是代码:
let username = "DavidMouse"
// create searchRef or queryRef you name it
let searchRef = FIRDatabase.database().reference().child("users").queryOrdered(byChild: "username").queryEqual(toValue: username)
// search the username
searchRef.observeSingleEvent(of: .value, with: { (snapshot) in
guard snapshot.value is NSNull else {
// yes we got the user
let user = snapshot.value as! String
print("\(user) is exists")
return
}
// no there is no user with desire username
print("\(username) is exists")
}) { (error) in
print("Failed to get snapshot", error.localizedDescription)
}
在这种情况下,我们可以通过嵌套在'users'键下的值来排序列表元素,方法是在queryOrderedByChild调用中指定嵌套子元素的相对路径。 – bibscy
显示你的火力数据库结构。 –