订阅Firebase Join Query React Native

时间:2018-09-05 21:21:34

标签: firebase react-native firebase-realtime-database

您可以看到我有2个主要分支

用户

对话

每个用户在用户分支中都有很多对话

我想执行一个JOIN查询,所以我只能通过用户ID订阅一次

因此,如果用户的任何会话发生任何变化,则将调用回调函数

enter image description here

1 个答案:

答案 0 :(得分:1)

由于firebase db是NOSQL数据库,因此不能使用联接查询。

在这种情况下,您可以做的是获取用户的sessionId,将其设置为变量,然后使用该变量使侦听器侦听会话中的更改。

例如,您可以执行以下操作:

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
  })
}