Значение Firebase, возвращающее ноль - PullRequest
0 голосов
/ 18 июня 2019

У меня есть панель поиска, которая позволяет мне искать пользователей по их имени пользователя.Результаты будут отображать пустую ячейку с именем пользователя, возвращающим ноль.

Я пытался изменить ссылочный путь на ref.queryOrdered(byChild:"information") и пропустил имя, но это не сработало.Я также пытался использовать путь ссылки как ref.observeSingleEvent, но не получал ни одного снимка взамен.

Другие ссылки, на которые я обращался за помощью:

  1. База данных Firebase внезапно возвращает ноль
  2. Возвращение данных Firebase ноль
  3. Получение данных из Firebase вернуло nil

JSON в Firebase для users настроен следующим образом:

{
  "UserId" : {
  "information" : {
  "name" : "bobby",
   },
 }
}  

Фрагмент кода ниже:

class SearchUser {
     var id: String?
     var name: String?
}

extension SearchUser {

   static func setUser(dict: [String: Any], key: String) -> SearchUser 
{
    let user = SearchUser()
    user.id = key
    user.name = dict["name"] as? String

    return user
}

// MARK: Search for users
static func queryUsers(withText text: String, completion: @escaping 
(SearchUser) -> Void) {
    let ref = Database.database().reference().child("users")

 ref.queryOrdered(byChild: 
 "information/name").queryStarting(atValue: 
 text).queryEnding(atValue: text+"\u{f8ff}").queryLimited(toFirst: 
 10).observeSingleEvent(of: .value, with: { (snapshot) in
        snapshot.children.forEach({ (s) in
            //Snapshot displays the correct user info 
            print("Snapshot is: \(snapshot)")
            let child = s as! DataSnapshot
            if let dict = child.value as? [String: Any] {
                let user = SearchUser.setUser(dict: dict, 
             key: child.key)
                // Returns nil
                print("User is: \(String(describing: user.name))")
                // Will return correct ID
                print("User ID: \(String(describing: user.id))")
                completion(user)
            }
        })
    })
  }
}

Я ожидаю, что user.name вернет имя пользователя, но текущий вывод равен нулю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...