Я пытаюсь создать метод для отображения, когда пользователь получил новое сообщение, но когда я использую фильтр Firebase, он также присваивается другим строкам
Структура базы Firebase
"users" : {
"4" : {
"address" : "Street",
"id" : "198",
"messages" : {
"-LHf9ifs5Hcfu0VGKSsc" : {
"forUid_status" : "198_read",
"fromId" : "4",
"read" : true,
"text" : "1",
"timestamp" : 1531880074,
"toId" : "198"
}
"user-messages" : {
"4" : {
"43" : {
"-LKxkblwwS5FgJR3RhuI" : 1
}
},
Я поместил этот метод в cellForRowAt indexPath
let messagesRef = Database.database().reference().child("messages")
let uid = message.toId
let status = "unread"
let queryString = uid! + "_" + status
let ref = messagesRef.queryOrdered(byChild: "forUid_status").queryEqual(toValue: queryString)
ref.observe(.value, with: { snapshot in
if snapshot.exists() {
let count = snapshot.childrenCount
cell.messagesCount.isHidden = false
} else {
print("no unread messages")
}
})
Есть ли способ сделать это? Я исследовал другие вопросы, но не смог найти решение.