Firebase 承诺 - Query.once 失败:使用 1 个参数调用.预计至少 2
Firebase promise - Query.once failed: Was called with 1 argument. Expects at least 2
我正在尝试使用promises用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 = {玩家名称:姓名,得分:50}
目前的数据库安排符合我的需求。
当您尝试在预承诺的 SDK 上使用已封装的 API 时,会出现此错误消息。
回传(其他答案建议的)适用于任何 2.x 版本的 Firebase SDK。
我们在 Firebase 的 JavaScript SDK 版本 2.4 中引入了一种使用承诺的替代语法。请参阅此 jsbin 中的once().then()
示例:http://jsbin.com/qiranu/edit?js,console
您是否使用的是 Firebase JavaScript SDK 2.4 或更高版本(这是引入承诺的地方)?
不要使用 then
.Once 将回调函数作为第二个参数:
https://www.firebase.com/docs/web/api/query/once.html
var arr=[];
highscoreRef.child('highscore').once('value', function(snapshot) {
snapshot.forEach(function(data) {
arr.push({playerName: data.key(), score: data.val()});
});
}, function(error) {
console.error(error);
});
相关文章:
- 如何在从排序方法调用参数时将其传递给回调
- 使用JavaScript拦截方法调用参数
- 调用参数数量未知的回调
- JavaScript:按名称调用参数计算
- 我可以通过beforeSent事件更改jQuery.ajax的函数调用参数(在数据中发送)吗?
- 从 php 调用参数化的 JavaScript 函数
- 从 java 脚本调用参数化 ms-access 函数的语法是什么?
- 创建一个新函数并从另一个函数调用参数
- 获取javascript中getter的调用参数
- 如何将变量传递给属于函数调用参数一部分的函数
- 在babel加载程序中将其更改为未定义的自调用参数
- 调用参数列表的函数
- 从函数调用参数
- QtScript可以't调用参数类型为“”的函数;Q字符串&&”;
- 无用的setTimeout调用(参数周围缺少引号?)
- iOS: evaluateJavaScript将不会调用参数包含换行符的函数
- 如何在php中从HTML或javascript调用参数
- debounce获取前一个函数的调用参数
- Yii CGridView按钮-调用参数化javascript函数
- Javascript:如何动态更改函数调用参数