как кнопка как instagram вылетает после нажатия - PullRequest
0 голосов
/ 31 августа 2018

Я добавил новую опцию в свое приложение, пользователю могут понравиться места, но когда я нажимаю на подобное Button, я получаю сбой [Тема 1: Неустранимая ошибка: неожиданно обнаружен ноль при развертывании необязательного значения]

Код: tableViewCell кнопка

@IBAction func likePressed(_ sender: Any) {
    self.likeBtn.isEnabled = false
    let ref = Database.database().reference()
    //let key = ref.childByAutoId().key
    let keyToPost = ref.child("Restaurant").childByAutoId().key


    ref.child("Restaurant").child(self.postID).observeSingleEvent(of: .value, with: { (snapshot) in
                          //.child(self.id)
        if let post = snapshot.value as? [String : AnyObject] {
            let updateLikes: [String : Any] = ["peopleWhoLike/\(keyToPost)" : Auth.auth().currentUser!.uid]
            ref.child("Restaurant").child(self.postID).updateChildValues(updateLikes, withCompletionBlock: { (error, reff) in

                if error == nil {
                    ref.child("Restaurant").child(self.postID).observeSingleEvent(of: .value, with: { (snap) in
                        if let properties = snap.value as? [String : AnyObject] {
                            if let likes = properties["peopleWhoLike"] as? [String : AnyObject] {
                                let count = likes.count
                                self.likeLabel.text = "\(count) Likes this place"

                                let update = ["likes" : count]
                                ref.child("Restaurant").child(self.postID).updateChildValues(update)

                                self.likeBtn.isHidden = true
                                self.unlikeBtn.isHidden = false
                                self.likeBtn.isEnabled = true
                                print("Likes")
                            }
                        }
                    })
                }
            })
        }


    })

    ref.removeAllObservers()
}

Снимок экрана с ошибкой enter image description here

Второй снимок экрана enter image description here

Может ли кто-нибудь мне помочь, заранее спасибо

1 Ответ

0 голосов
/ 31 августа 2018
let updateLikes: [String : Any] = ["peopleWhoLike/\(keyToPost)" : Auth.auth().currentUser!.uid]

Вероятно, не существует currentUser -> Принудительное развертывание, например, чтобы вывести из строя ваше приложение. Я бы избегал их в максимально возможной степени. Где вы аутентифицируете своего текущего пользователя?

Как вы входите в систему пользователя: https://firebase.google.com/docs/auth/ios/start

А потом перед вашим кодом я бы сделал что-то подобное:

guard let userUID = Auth.auth().currentUser?.uid else {
return
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...