Firebase承诺 - Query.once失败:使用1参数调用.预计至少2

Bru*_*uno 5 javascript firebase

我正在尝试使用promises从Firebase填充一些数据.这是DB结构:

- domain name(or something)
  |--highscore
     |--Foo: 50
     |--Bar: 60
Run Code Online (Sandbox Code Playgroud)

代码:

var arr=[];
highscoreRef.child('highscore').once('value').then(function(snapshot) {
    snapshot.forEach(function(data) {
    arr.push({playerName: data.key(), score: data.val()});
    });
  }, function(error) {
     console.error(error);
});
Run Code Online (Sandbox Code Playgroud)

我明白了 Uncaught Error: Query.once failed: Was called with 1 argument. Expects at least 2.

这是否意味着我必须向Foo和Bar添加至少2个属性?防爆.Foo = {playerName:name,score:50}

当前的数据库安排符合我的需求.

Fra*_*len 9

当您尝试在Promisified SDK之前使用Promisified API时会出现此错误消息.

回调(其他答案已建议)将适用于任何2.x版本的Firebase SDK.

我们在Firebase的JavaScript SDK 2.4版中引入了使用promises的替代语法.请参阅once().then()此jsbin中的示例:http://jsbin.com/qiranu/edit?js,console

您使用的是Firebase JavaScript SDK 2.4或更高版本(这是推出承诺的地方)吗?