我做我的#2搜索,但我没有找到我要找的如何在数据库中搜索火力地堡
的解决方案,我想在数据库火力点进行搜索,如果“名称”等于在名称导航标题,并在“电子邮件”该用户使用,以签到等于在数据库中的电子邮件,然后它会避免用户添加新项
JSON的看起来像这样
"Items" : {
"-KUMSKLFqMjclbqygnPL" : {
"Item" : "asdfg"
"Name" : "Fadi”,
"User Email" : "[email protected]"
}
}
我的代码是
let databaseRef = FIRDatabase.database().reference()
var NAME : String!
var UserEmail : String!
var email : String!
databaseRef.child("Items").queryOrderedByKey().observe(.childAdded, with: { snapshot in
let snapshotValue = snapshot.value as? NSDictionary
NAME = (snapshotValue?["Name"] as? String)!
UserEmail = (snapshotValue?["User Email"] as? String)!
email = (FIRAuth.auth()?.currentUser?.email)!
if NAME == navigationItem.title {
if UserEmail == email {
print ("you can't add new item \(UserEmail)")
}else if UserEmail != email {
print("you can add new Item")
}
}
})
我的问题是如果存在名称相同的Fadi但有两个不同的电子邮件 其结果将是
you can't add new item Optional("[email protected]")
you can add new Item
应该只打印
you can't add new item Optional("[email protected]")
我不知道如何打破它现在看起来像循环所有数据库
更新:
我尝试德拉威答案
结果打印(snapShot.value):
"-KUMS7J-rCglHrVGX840" = {
"Item" = "asdsd"
"Name" = "a";
"User Email" = "[email protected]";
};
结果是正确的!但现在我需要从该节点提取用户电子邮件
您已经表明您使用的是斯威夫特通过'快速'标签。无需将其添加到标题中。 –