Firebase快照参考不会返回数据

时间:2012-11-15 15:05:34

标签: javascript firebase

我正在使用firebase并列出了一些具有某些优先级的人员。在我的一个职能中,设置和获得优先级正常。但在另一个,我只能设置并尝试获取项的优先级返回'dataSnapshot.getPriority()不是函数'。

var playersList = new Firebase('https://myfirebase.firebaseIO.com/players') 
var winnerSnapshot =  playersList.child(winner);
winnerSnapshot.setPriority('1300'); //This is working
var oldPriority = winnerSnapshot.getPriority(); //Not working

1 个答案:

答案 0 :(得分:2)

这里有两种不同类型的物体在玩耍。 Firebase引用和DataSnapshot。当您调用新的Firebase()时,您会获得一个Firebase参考,该参考允许您编写数据(例如使用set或setPriority)或附加读取数据的回调(例如,使用on或一次)。

使用on()或once()注册的这些回调通过DataSnapshot接收数据,您可以在 上调用.getPriority()。查看Reading Data文档了解详细信息。

例如,要使您的示例正常工作,您可以执行以下操作:

var winner = "somebody";
var playersListRef = new Firebase('https://myfirebase.firebaseIO.com/players') 
var winnerRef =  playersListRef.child(winner);

// You use a firebase reference to write data.
winnerRef.setPriority('1300');

// You can also use a firebase reference to attach a callback for reading data.
winnerRef.once('value', function(winnerSnapshot) {
  // Inside your callback, you get a DataSnapshot that gives you access to the data.
  var priority = winnerSnapshot.getPriority();
});