Из-за ограничений запросов Firebase вам нужно будет создать в вашей базе данных новую коллекцию, которая будет отслеживать все разговоры, частью которых является пользователь.Она должна быть структурирована примерно так:
usersConversations {
userID1 {
conversationID1: timestamp (or what ever value you would like, I would recommend a timestamp they joined so you can query the latest conversations, etc.)
conversationID2: timestamp
conversationID3: timestamp
userID2 {
conversationID1: timestamp
conversationID2: timestamp
} ... and so on
}
Вам нужно будет добавлять и удалять эту коллекцию всякий раз, когда пользователь присоединяется или покидает разговор, а также вашу существующую коллекцию conversations
.
Затем вы можете получить все разговоры, в которых участвует пользователь с идентификатором userID
, выполнив что-то вроде этого:
databaseRef.child("usersConversations").child(userID).observeSingleEvent(of: .value) (snapshot) in {
if snapshot.exists() {
// each snapshot child's key will be a conversationID that they are a part of
} else {
// the user is part of no conversations
}
}