У меня настроен тип тиндера, и я получаю всех пользователей, чтобы я мог пролистывать их карточки. все работает гладко, за исключением того факта, что это представление смахивания также вызывает данные от текущего пользователя, позволяя им перемещаться по себе. Этого не должно происходить.
Код, который я использую:
fun c fetchUser () {
topCardView = nil
var previousCardView: CardView?
Database.database().reference().child("jobPost").observe(.childAdded, with: { (snapshot) in
if let userDictionary = snapshot.value as? [String: AnyObject] {
let poster = Poster(dictionary: userDictionary as [String : AnyObject])
let cardView = self.setupCardFromUser(poster: poster)
self.cardViewModels.append(poster.toCardViewModel())
if let currentUser = Auth.auth().currentUser?.uid,
currentUser == poster.fromId {
cardView.removeFromSuperview()
} else if self.topCardView == nil {
self.topCardView = cardView
}
previousCardView?.nextCardView = cardView
previousCardView = cardView
}
}, withCancel: nil)
}
Это позволяет мне вызывать все данные из firebase, однако также вызывает данные currentUsers.
Я подумал, что, возможно, если бы использовать
let currentUser = Auth.auth().currentUser?.uid
if currentUser == cardView {
cardView?.removeFromSuperview()
}
, я бы получил сообщение об ошибке
Двоичный оператор '==' не может быть применен операндам типа String? и 'CardView'
кто-нибудь знает быстрое исправление?