Я пытаюсь прочитать данные из firebase, пока пользователь печатает, но я получаю эту ошибку: Поток 1: EXC_BAD_ACCESS (code = 2, address = 0x7ffeed614ff8) - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь получить данные из firebase, пока пользователь печатает, и я хочу отобразить эти данные в виде таблицы, но когда я запускаю свой код, я получаю эту ошибку: Поток 1: EXC_BAD_ACCESS (code = 2, address = 0x7ffeed614ff8 )

Так выглядит структура моей базы данных.

  • Пользователи

    • UID

      • электронная почта

      • emailNotifications

      • имя пользователя

      • FULLNAME

Вот так выглядит мой код. Вместо поиска через панель поиска я просто ввел собственное значение (есть пользователь, у которого есть имя пользователя ginger) для этого теста.

//MARK: - Tableview Datasource Methods

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return findFriends(text: "gin").count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {



        let cell = tableView.dequeueReusableCell(withIdentifier: "addFriendCell", for: indexPath) as! AddFriendTableViewCell

        cell.lblName?.text =  findFriends(text: "gin")[indexPath.row].name

        cell.lbluserName?.text = findFriends(text: "gin")[indexPath.row].username




        return cell
    }

    func findFriends(text: String) -> [User] {


        let user = User()
        var userArray = [User]()

        let ref = Database.database().reference()
        ref.child("users").queryOrdered(byChild: "username").queryStarting(atValue: text).queryEnding(atValue: text+"\u{f8ff}").observe(.value, with: { snapshot in


            for userSnapshot in snapshot.children{

                let userSnapshot = userSnapshot as! DataSnapshot
                guard let dictionary = userSnapshot.value as? [String: Any] else { return }

                user.name = (dictionary["name"] as? String)!
                user.username = (dictionary["username"] as? String)!
                userArray.append(user)
            }

        })
        tableView.reloadData()
        return userArray


}
}
...