2016-09-23 26 views
3

我有一個帶有Firebase的實時數據庫,我使用以下代碼連接到數據庫並從中獲取一些數據。在Firebase中檢索數據恰好一次

window.onload = function(){ 
var databaseWebsites = firebase.database().ref('/websites').orderByChild('votes'); 
console.log(databaseWebsites); 
databaseWebsites.on('value', function(snapshot) { 
    snapshot.forEach(function(childSnapshot) { 

     var webTemp = document.getElementById(childSnapshot.val().id); 
     webTemp.style.order = order; 
     var webText = webTemp.getElementsByClassName('likeText'); 
     webText[0].innerHTML = childSnapshot.val().votes; 
     order--; 
    }); 

    order = 0; 
}); 

它獲取所有數據,按順序使用並正確使用它。

問題是,我不希望前端的數據更新,直到用戶刷新頁面。該系統是一個按投票值排序的投票系統,如果它不斷更新,這將是一個糟糕的用戶體驗。

任何幫助將不勝感激。

感謝

回答

6

更改ononce,火力地堡on偵聽數據庫中的節點進行了改進,併發送一個響應。

databaseWebsites.on('value', function(snapshot) { 

databaseWebsites.once('value', function(snapshot) { 

摘錄從火力地堡DOC

值事件被稱爲每次數據在指定的 數據庫參考被改變,包括改變的兒童。要限制您的快照的尺寸 ,請僅附加在觀看 更改所需的最低級別。

Visit this url to read more