4

私はfirebaseを使用しており、特定の優先順位を持つ人々のリストを持っています。私の関数の 1 つで、優先度の設定と取得が正常に機能しています。しかし、別の方法では、アイテムの優先度を設定して取得しようとすると、「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
4

1 に答える 1

2

ここでは、実際には 2 種類のオブジェクトが使用されています。FirebaseリファレンスとDataSnapshot。new Firebase() を呼び出すと、データの書き込み (set または setPriority を使用) やデータ読み取り用のコールバックのアタッチ(on または once の使用) を可能にする Firebase 参照が取得されます。

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();
});
于 2012-11-15T15:33:29.737 に答える