Ваша текущая структура данных позволяет легко найти участников для разговора. Однако это не облегчает поиск разговоров для пользователя.
Одна альтернативная структура данных, которая облегчает это, - хранить участников в следующем формате:
imgUrls: {},
participants: {
"aniruddh": true,
"trubluvin": true
}
Теперь вы можете технически запрашивать разговоры пользователя с чем-то вроде:
db.child("conversations").orderByChild("participants/aniruddh").equalTo(true)
Но это не очень хорошо масштабируется, так как вам нужно будет определить индекс для каждого пользователя.
Правильное решение - добавить вторую структуру данных, известную как инвертированный индекс, которая позволяет просматривать разговоры для пользователя. В вашем случае это может выглядеть так:
userConversations: {
"aniruddh": {
"-LxzV5LzP9TH7L6BvV7": true
},
"trubluvin": {
"-LxzV5LzP9TH7L6BvV7": true
}
}
Теперь вы можете искать разговоры, в которые входит пользователь, с помощью простой операции чтения. Вы можете расширить эту структуру данных, чтобы она содержала больше информации о каждом разговоре, например информацию, которую вы хотите отобразить в представлении списка.
Также см. Мой ответ здесь: