firefeed商店只列入火花列表中的ID - 这是如何工作的?

时间:2014-06-28 17:37:23

标签: firebase

来自:https://firefeed.io/about.html

  

为什么这个结构?我们正在优化性能和可扩展性。当我们需要显示特定用户的Feed时,我们只需要查看一个位置:

 var feed = firebase.child("users").child(userid).child("feed");
feed.on("child_added", function(snapshot) {
  var sparkID = snapshot.name();
  var sparkRef = firebase.child("sparks").child(sparkID);
  sparkRef.on("value", function(spark) {
  // Render the spark into the user's feed.
  });
 });

我不明白你如何存储id并列出火花。对我来说,你要呈现的只是一个id列表。 Firebase如何知道获取sparkid列表的数据以便可以呈现?

1 个答案:

答案 0 :(得分:1)

关键是:

var sparkRef = firebase.child("sparks").child(sparkID);
sparkRef.on("value", function(spark) { ... });

这将从列表中获取sparkID,并在/ sparks下将回调附加到存储所有spark数据的位置。这使得Firefeed可以在各个地方使用sparkIds列表,而无需复制每个spark的所有数据。作为一个额外的优点,如果火花被更新,它将在每个列表中自动更新,因为列表只是存储指针。