仅在Firebase中检索一次数据

Joe*_*ory 5 javascript nosql firebase firebase-realtime-database

我有一个带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;
});
Run Code Online (Sandbox Code Playgroud)

它按顺序获取所有数据并正确使用它.

问题是,我不希望在用户刷新页面之前更新前端的数据.该系统是一个按投票价值排序的投票系统,如果它不断更新,那将是一个糟糕的用户体验.

任何帮助将不胜感激.

谢谢

小智 10

更改ononce,Firebase会on侦听数据库节点中的更改并发送响应.

databaseWebsites.on('value', function(snapshot) {
Run Code Online (Sandbox Code Playgroud)

databaseWebsites.once('value', function(snapshot) {
Run Code Online (Sandbox Code Playgroud)

来自Firebase文档的摘录

每次在指定的数据库引用处更改数据时都会调用value事件,包括对子项的更改.要限制快照的大小,请仅在观察更改所需的最低级别附加.

访问此网址以了解更多信息