У меня есть эта структура данных, и я не могу извлечь нужное значение:
users
private
userID
birthday: "birthdayValue"
username: "nathan"
firstName: "Nathan"
etc...
Я делаю в своем приложении функцию поиска для поиска пользователей по их имени пользователя в базе данных реального времени firebase:
let reference = Database.database().reference()
if(searchText != ""){
reference.child("users").child("private").queryOrdered(byChild: "username").queryStarting(atValue: searchText).queryEnding(atValue: searchText + "\u{f8ff}").observeSingleEvent(of: .value, with: { (snapshot) in
if snapshot.value is NSNull{
//handles errors
return
}
else{
if let user = snapshot.value as? NSDictionary {
for child in user{
print(child.key)
print(child.value)
}
}
else{
//null
}
}
})
в настоящий момент два оператора print выводят эти два результата в консоль каждый раз, когда я ищу:
wnszfmHilqNl6PG9khWtWkKUPtF3
{
birthday = 100;
dateCreated = "1579543450313.94";
description = nil;
email = "[email protected]";
firstName = Nathan;
instagramLink = nil;
lastLogin = "1579543450313.988";
lastName = Ellis;
profilePicURL = "url";
twitchLink = nil;
username = nathan;
youtubeLink = nil;
}
Как и ожидалось, он печатает идентификатор пользователя (ключ) и значение моментального снимка как NSDictonary. Меня интересует только имя пользователя, больше ничего. Как мне извлечь имя пользователя из этого снимка firebase, чтобы добавить его имя пользователя в виде строки в массив для моего контроллера поиска?
Очевидно, он должен быть динамическим, поскольку идентификатор пользователя всегда будет другим.
Мне нужно будет изменить мою модель данных?
Codable
? - person koen   schedule 22.01.2020