Когда пользователь нажимает кнопку findDeal, первая сделка (документ) извлекается из коллекции под названием «сделки». После получения я в основном проверяю, существует ли эта сделка (документ) в истории сделок пользователя. Если это произойдет, то я хочу перейти к следующей сделке (документу) в коллекции и повторить тот же процесс. Если он не существует в истории сделок пользователя, я перехожу к отображению сделки для пользователя.
Цель: я не хочу показывать пользователю сделки, которые он уже видел, поэтому я просто хочу игнорировать документ, если он уже был просмотрен пользователем, и перейти к следующему.
Я не знаю, как мне получить следующий документ.
Исследование, которое я провел: я понимаю, что это можно сделать с помощью нумерации страниц, но я не могу обернуть его вокруг своей жизни. В этом случае использования нет кнопок или слушателей реального времени, которые запускают нумерацию страниц, так как это работает?
fileprivate func findDealPressed(){
Firestore.firestore().collection("deals").order(by: "timestamp").limit(to: 1).getDocuments { (snapshot, error) in
if let error = error{
print(error.localizedDescription)
return
} else {
if let docs = snapshot?.documents, !docs.isEmpty{
for document in docs{
let docValues: [String:Any] = document.data()
let dealId = docValues["dealId"] as! String
let dealAlreadySeenByUser: Bool = self.checkIfDealAlreadySeenByUser(dealId: dealId)
if dealAlreadySeenByUser{
//This is where I want to proceed to the next document in the collection if the value is true i,e if the user has already seen the deal.
} else {
//Proceed to show the deal to the user
self.label = docValues["dealName"] as! String
}
}
}
}
}
}
fileprivate func checkIfDealAlreadySeenByUser(dealId: String) -> Bool{
//This is where I check and confirm it is true or false, whether the user has already seen the deal or not
return true
}