0
我在我的Firebase數據庫中有一個名爲「users」的密鑰,其中包含電子郵件和名稱的密鑰。我試圖創建一個簡單的查詢,它將根據電子郵件地址查找用戶,但查詢不會返回任何結果。Firebase查詢無法找到電子郵件地址?
let rootRef = FIRDatabase.database().reference()
let email = emailTextField.text
rootRef.child("users").queryEqualToValue(email, childKey: "users").observeEventType(.Value, withBlock: { snapshot in
if snapshot.exists() {
print("user exists")
} else if !snapshot.exists(){
print("user doesn't exist")
}
})
即使電子郵件文本字段與我的數據庫中顯示的內容相同,我的控制檯始終打印「用戶不存在」。
有什麼不對?
謝謝!
謝謝!這很好。感謝關於迭代快照的額外提示。像魅力一樣工作。 – winston
對不起,還沒有添加到這裏。我如何獲得快照的ID? 'print(snapshot.key)'返回「用戶」,而不是像「12EEWekLr5bqb4J9GilGvKjgWmp1」這樣的實際用戶ID。我可以很容易地通過'child.value [「email」]得到用戶郵件,但實際的用戶ID不是我可以抓取的命名元素。 – winston
@james沒問題,簡單的答案。請記住,當使用.Value進行查詢時,您應該使用我的答案中的第二個代碼片段遍歷快照中返回的子項。在該片段中,要訪問任何特定字段,請使用* let name = child.value [「name」] as!串*。要訪問每個孩子的密鑰,請使用* let key = child.key作爲字符串!* – Jay