我如何在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
顯示你的火力數據庫結構。 –