2015-03-30 112 views
1

我想要的火力鏢包, 保存正確的值在數據庫中,但推出的例外: 火力地堡,飛鏢例外集

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));  
    }); 
} 
+0

如果你做了'fb.child('/ some-child').set(value)'',它會起作用嗎?順便說一句,你可以做'新的Firebase(firebaseUrl)'。 – 2015-04-07 00:27:40

+0

與小孩(...)相同的錯誤 – JoaoBiriba 2015-04-07 21:31:06

回答

1

源代碼似乎基於WebStorm Web Applicaion示例項目。我創建了一個基於該樣本項目,除了添加發布源代碼lib/reverser.dart一個新的項目,只幹了三個額外的東西,使其工作:

  • 添加了此行的<head>標籤裏面index.html

    <script src="https://cdn.firebase.com/js/client/2.2.2/firebase.js"></script>

  • 添加了此行的pubspec.yaml文件dependencies:部分:

    firebase: ">=0.5.1 <0.6.0"

  • 從項目目錄

之後那個叫pub get,項目合作和反向文本添加到火力地堡數據庫。是否對您的項目進行了相同的更改?也許使用了不同版本的Firebase pub包,或者在<script>標記中引用了不兼容的JavaScript文件?我正在使用Dart SDK 1.10.0_r45396。

與帖子中的源代碼存在無關聯的問題:成功後,從Firebase.set()返回的未來值將爲空,因此print(result.snapshot)將導致異常。