【发布时间】:2016-06-02 06:14:13
【问题描述】:
我正在尝试使用 Promise 使用 Firebase 中的一些数据填充数组。这是数据库结构:
- domain name(or something)
|--highscore
|--Foo: 50
|--Bar: 60
代码:
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);
});
我收到Uncaught Error: Query.once failed: Was called with 1 argument. Expects at least 2.
这是否意味着我必须向 Foo 和 Bar 添加至少 2 个属性?前任。 Foo = {playerName: name, score: 50}
目前的数据库安排符合我的需要。
【问题讨论】:
-
我很确定我已经毫无问题地使用了
once()承诺。给我一点时间来设置一个 jsfiddle/jsbin。 -
为我工作:jsbin.com/qiranu/edit?js,console。您使用的是 Firebase JavaScript SDK 2.4 版或更高版本(即引入了 Promise)。
-
我通常认为这是一个错字,这就是我发表评论的原因(一旦确认就投赞成票)。但是您可能是对的,鉴于错误消息,其他人可能会发现这一点。
-
@Frank van Puffelen,感谢您的快速回复!检查我使用的是哪个版本的想法从未闪过我的脑海。它是 2.2.1。我从其中一个教程中复制了 CDN,却忘记了在那里检查。我的错。无论如何,我可以将您的评论标记为答案?
-
@FrankvanPuffelen:是的,在这种情况下,它很有用。
标签: javascript firebase