Существующие решения у меня не работают, я пробовал. Я пытаюсь получить сообщения в потоке, который хранится в Firestore. Это текущая структура коллекции чатов:
Как видите, этот чат между пользователем 1 и пользователем 2 имеет только 2 сообщения, и япытаясь получить их, а также прослушать новые, если они добавлены в поток. Вот код того, как я это делаю:
func loadChat() {
self.showWaitOverlayWithText("Loading")
let db = Firestore.firestore().collection("Chats")
.whereField("user1ID", isEqualTo: Auth.auth().currentUser?.uid ?? "Not Found User 1")
.whereField("user2UID", isEqualTo: user2UID ?? "Not Found User 2")
db.getDocuments { (querySnap, error) in
if let error = error {
print("Error: \(error)")
return
} else {
let doc = querySnap?.documents.first
doc?.reference.collection("thread").addSnapshotListener(includeMetadataChanges: true, listener: { (threadQuery, error) in
//Never comes here
for message in threadQuery!.documents {
self.removeAllOverlays()
print("Data: \(message.data())")
}
})
}
}
}
Это никогда не выполняется collection("thread").addSnapshotListner
.