我正在尝试firebase-dart包,使用set在数据库中保存正确的值,但启动异常:
Closure call with mismatched arguments: function 'call'
NoSuchMethodError: incorrect number of arguments passed to method named 'call'
Receiver: Closure: (dynamic) => dynamic
Tried calling: call(null, "")
Found: call(err)以下是源代码:
library reverser;
import 'dart:html';
import 'package:firebase/firebase.dart' show Firebase;
const firebaseUrl = 'https://laquyfire.firebaseio.com/';
// Example of hooking into the DOM and responding to changes from input fields.
initReverser() {
var output = querySelector('#out');
var input = querySelector('#name');
input.onKeyUp.listen((_) {
output.text = input.value.split('').reversed.join();
var fb = new Firebase('${firebaseUrl}');
var value = {'reversed': output.text};
fb.set(value).then((result) => print(result.snapshot));
});
}发布于 2015-05-08 03:52:27
源代码似乎基于WebStorm Web Applicaion示例项目。我在这个示例项目的基础上创建了一个新项目,除了将发布的源代码添加到lib/reverser.dart之外,我只做了三件额外的事情来使其工作:
在index.html<script src="https://cdn.firebase.com/js/client/2.2.2/firebase.js"></script>中,
<head>标记内添加了这一行pubspec.yaml文件的dependencies:部分:firebase: ">=0.5.1 <0.6.0"
调用pub get
在那之后,项目开始工作,反向文本被添加到Firebase数据库中。你的项目也做了同样的改变吗?也许使用了不同版本的Firebase pub包,或者在<script>标记中引用了不兼容的JavaScript文件?我正在使用Dart SDK 1.10.0_r45396。
post中的源代码有一个不相关的问题:如果成功,从Firebase.set()返回的未来值将为空,因此print(result.snapshot)将导致异常。
https://stackoverflow.com/questions/29354666
复制相似问题