Я сделал свой поиск по Stackoverflow, но я не нашел решение я ищуКак искать в базе данных Firebase
Я хочу, чтобы искать в firebase базы данных, если «Name» равно имени в Навигация Название, а также «Электронная почта», которые пользователь использует для входа в аккаунт равно электронной почты в базе данных, то это позволит избежать пользователю добавить новый пункт
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")
}
}
})
Моя проблема Если имя равно Фади но есть два разных письма Результат будет
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]";
};
В результате правильно! но теперь мне нужно, чтобы извлечь адреса электронной почты пользователя из этого узла
Вы уже указали вы используете Swift, используя ' swift' бирка. Не нужно добавлять это в заголовок. –