我正在尝试使用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));
});
}
最佳答案
源代码似乎基于WebStorm Web Applicaion
示例项目。我基于该示例项目创建了一个新项目,除了将发布的源代码添加到lib/reverser.dart
之外,仅做了三件事使其工作:
<head>
的index.html
标记内添加了以下行:<script src="https://cdn.firebase.com/js/client/2.2.2/firebase.js"></script>
dependencies:
文件中的pubspec.yaml
部分:firebase: ">=0.5.1 <0.6.0"
pub get
之后,该项目开始工作,并将反向文本添加到Firebase数据库中。对您的项目进行了相同的更改吗?也许使用了不同版本的Firebase pub软件包,或者在
<script>
标记中引用了不兼容的JavaScript文件?我正在使用Dart SDK 1.10.0_r45396。帖子中的源代码有一个不相关的问题:成功后,从
Firebase.set()
返回的future的值将为null,因此print(result.snapshot)
将导致异常。
关于dart - 设置中的Firebase-Dart异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29354666/