Firebase - LimitToLast - 显示结果

问题描述 投票:0回答:1

我正在使用Firebase作为数据库进行类的项目。该项目包括一个从数据库中提取信息的页面,以显示您观看的最后4部电影的电影海报。

使用我当前的代码,我可以获得控制台日志以显示分配给每个移动的最后4个网址,但只有最新的网址显示在我网站上的所有四个海报位置。

目标是在每个ID位置显示最后4部电影的每张海报。我附上图片以帮助想象我的意思。

如果有人能指出如何解决这个问题我会非常感激。

var lastFourRef = firebase.database().ref("events");
lastFourRef.orderByChild("events").limitToLast(4).on("child_added", 
function(snapshot) {
  var lastMovie = snapshot.val().movie;
  var lastHost = snapshot.val().host;
  var lastDate = snapshot.val().date;
  var lastPoster = snapshot.val().poster;

  document.getElementById('img-num1').src = lastPoster;
  document.getElementById('img-num2').src = lastPoster;
  document.getElementById('img-num3').src = lastPoster;
  document.getElementById('img-num4').src = lastPoster;

  console.log(lastMovie);
  console.log(lastHost);
  console.log(lastDate);
  console.log(lastPoster);
});

javascript firebase firebase-realtime-database
1个回答
0
投票

使用child_added时,每次向该节点添加事件时都会调用该函数,并且snapshot对象包含该节点的数据。

你可以使用counter变量来显示它的img元素中的每个图像:

var lastFourRef = firebase.database().ref("events");
var counter = 1;
lastFourRef.orderByChild("events").limitToLast(4).on("child_added", 
function(snapshot) {
  var lastMovie = snapshot.val().movie;
  var lastHost = snapshot.val().host;
  var lastDate = snapshot.val().date;
  var lastPoster = snapshot.val().poster;

  document.getElementById('img-num'+counter).src = lastPoster;

  console.log(lastMovie);
  console.log(lastHost);
  console.log(lastDate);
  console.log(lastPoster);
  counter++;
});
© www.soinside.com 2019 - 2024. All rights reserved.