Подписаться на Firebase Join Query React Native - PullRequest
0 голосов
/ 06 сентября 2018

Как видите, у меня есть 2 основных ветви

Пользователи

Диалоги

Каждый пользователь имеет много разговоров в ветке пользователей

Я хотел бы выполнить запрос JOIN, чтобы подписаться только один раз на идентификатор пользователя

Так что, если есть какие-либо изменения в любом разговоре пользователя, обратный вызов будет называться

enter image description here

1 Ответ

0 голосов
/ 06 сентября 2018

Поскольку firebase db является базой данных NOSQL, вы не можете использовать запрос соединения.

То, что вы можете сделать в вашем случае, это получить идентификатор разговора для пользователя, установить его в качестве переменной и использовать эту переменную, чтобы заставить слушателя прослушивать изменения в разговоре.

Например, вы можете сделать что-то вроде этого:

getConversationId(userId, memberId){

  let conversationRef = firebaseDB.ref(`/users/${userId}/conversations/${memberId}`);

  conversationRef.once("value").then(snapshot => {
    if (snapshot.val()){
      let id = snapshot.val()
      let { conversationId } = id;
      this.listenConversation(conversationId);
    }
  })
}

listenConversation(conversationId){

  let conversationsRef = firebaseDB.ref(`/conversations/${conversationId}`);

  conversationsRef.on("value", snapshot => {
    // here is your data
  })
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...