Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase快照参考赢得';t返回数据_Javascript_Firebase - Fatal编程技术网

Javascript Firebase快照参考赢得';t返回数据

Javascript Firebase快照参考赢得';t返回数据,javascript,firebase,Javascript,Firebase,我用的是firebase,我有一份名单,有一定的优先权。在我的一项职能中,设置和获取优先级工作正常。但在另一个例子中,我只能设置并尝试获取返回“dataSnapshot.getPriority()不是函数”的项的优先级 var playersList = new Firebase('https://myfirebase.firebaseIO.com/players') var winnerSnapshot = playersList.child(winner); winnerSnapshot

我用的是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

实际上这里有两种不同类型的物体在起作用。一封推荐信和一封信。调用new Firebase()时,您会得到一个Firebase引用,该引用允许您写入数据(例如使用set或setPriority)或附加回调以读取数据(例如使用on或one)

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

例如,要使您的示例发挥作用,您可以执行以下操作:

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();
});

这很有道理,谢谢。如果我像那样调用“once”,它会在调用时触发,还是只在数据更改时触发?对于其他任何人,它会在调用时触发。是的,.once()检索数据并触发一次。如果希望它在每次数据更改时都触发,请改用.on()。