Я использую следующую структуру данных в моем приложении:Посмотрите объект с помощью ключа в Firebase
var users = {
"tom": { conversations: ["fake-uuid-v4"] },
"bob": { conversations: ["fake-uuid-v4"] }
};
var conversations = {
"fake-uuid-v4": {
user_one: "tom",
user_two: "bob"
}
}
Каждый пользователь имеет набор ключей отображения к разговору, который содержит данные для разговора, например как последние отправленные сообщения, если пользователь печатает, и т. д. Проблема в том, что мне очень трудно найти разговор.
Вот что я пробовал, но это не дает никаких результатов. (Примечания: У меня есть это точные данные в моем firebase приложения прямо сейчас, так что это технически работоспособный пример)
var conversation_id = 'fake-uuid-v4';
firebase.database().ref('/conversations')
.startAt(conversation_id)
.endAt(conversation_id)
.on('child_added', function(snapshot, prevKey) {
if(snapshot.val()) console.log(snapshot);
});
Однако, это ничего не тянет из базы данных, если изменить код
firebase.database().ref('/conversations/'+conversation_id).on('child_added', function(snapshot, prevKey) {
});
Затем он печатает каждый ключ/значение для разговоров, добавленных в этом случае:
tom
bob
Как я могу контролировать все C беседы с ключом, который хранится в массиве цепочек пользователей?
Я не совсем понимаю вопрос. У вас возникли проблемы с чередованием идентификаторов разговоров пользователя и загрузкой каждого разговора? –