Всем привет!
У меня есть collectionView, ячейки выглядят примерно так:
Когда нажимаю на “лайк”, срабатывает функцияя:
@IBAction func buttonFavourite(_ sender: Any) {
self.notAdded.isEnabled = false
guard let userProfile = UserService.currentUserProfile else {
print("error")
return }
let favRef = Database.database().reference().child("favourite").child("\(userProfile.uid)").childByAutoId()
let favObject = [
"gender" : favouriteArray?.gender,
"imageOfClothes" : "\(favouriteArray!.imageOfClothes)",
"name" : favouriteArray?.name,
"price" : favouriteArray?.price,
"type" : favouriteArray?.type
] as [String:Any]
favRef.setValue(favObject) { (error, ref) in
if error == nil {
self.notAdded.isHidden = true
self.added.isHidden = false
self.notAdded.isEnabled = true
print("okPost")
} else {
print("ne OK")
}
}
}
Простыми словами, просто копируется соответсвующая ячейка в раздел базы “favourite”
В другом контроллере у меня отображаются “лайкнутые” ячейки, тут срабатывает reference().observe:
func observeFavouriteClothes() {
let favClothesRef = Database.database().reference().child("favourite").child((UserService.currentUserProfile?.uid)!)
favClothesRef.observe(.value) { (snapshot) in
var tempFav = [Clothes]()
for child in snapshot.children {
if let childSnapshot = child as? DataSnapshot,
let dict = childSnapshot.value as? [String: Any],
let name = dict["name"] as? String,
let gender = dict["gender"] as? String,
let price = dict["price"] as? Int,
let type = dict["type"] as? String,
let imageOfClothes = dict["imageOfClothes"] as? String,
let url = URL(string: imageOfClothes) {
let clothes = Clothes(name: name, price: price, imageOfClothes: url, gender: gender, type: type)
tempFav.append(clothes)
}
}
self.clothes = tempFav
self.collectionView.reloadData()
print("\(self.clothes)")
}
}
Как можно удалить соответсвующую ячейку из базы, если буду нажимать на “снять лайк”. У меня две кнопки. Когда стоит лайк, скрывается кнопка “поставить” лайк. Вот не знаю что прописывать в функции дизлайка.
Плюс когда я перезахожу в контроллер, где находится список вещей (не контроллер “избранные”), лайки пропадают и я не знаю, как отображать соответсвующие данные соответствующего пользователя, чтобы показывало на что стоит лайк, а на что не стоит. Помогите, пожалуйста
Заранее, огромное спасибо!