2017-10-13 75 views
0

將偵聽器與Firebase中的節點分開時出現問題。我目前正在構建應用程序的聊天界面,因此您可以想象我在這裏所說的內容。在節點上停止偵聽器的一種「類型」 - firebase/javascript

  1. 所以聽的聊天和實際顯示所有我使用的消息: firebase.database().ref('/path/to/relevant/chatNode').on('value')

我也有在列出所有當前活動的聊天應用另一種觀點認爲,它顯示的名字與您在下面聊天的人看到聊天中可用的最後一條消息。

  • 要保留最後一部分同步與DB我用: firebase.database().ref('/path/to/relevant/chatNode').limitToLast(1).on('child_added')
  • 現在的問題是,我想停下來聽,一旦用戶退出的變化從顯示所有消息的視圖。基本上我想打電話.off()聽衆號碼1,但不是在號碼2

    但是,我剛剛意識到.off()停止兩個聽衆。有沒有辦法指定我想要停止同步的監聽器類型,還是需要一旦用戶從實際聊天導航離開時需要調用監聽器號碼2

    在火力文檔,你可以找到這一行: You can remove a single listener by passing it as a parameter to off().

    如何傳遞一個監聽器作爲參數?

    回答

    1

    當您向on()註冊偵聽器時,它將返回該函數。您可以將其傳遞到off以僅停止該偵聽器。

    所以:

    var listener = firebase.database().ref('/path/to/relevant/chatNode').on('value') 
    

    然後:

    firebase.database().ref('/path/to/relevant/chatNode').off('value', listener) 
    
    +0

    非常感謝弗蘭克! –

    相關問題