2015-03-19 55 views
2

我正在試驗最新版本的Firebase-Dart(0.5.0),並試圖使用Dart庫複製JavaScript Firebase聊天教程(https://www.firebase.com/tutorial/#example/chat)。如何推入Firebase-Dart?

我想使用這個庫的push功能如下:

f = new Firebase('https://uniqueID.firebaseio-demo.com/'); 
f.push(value: { 
       'name': 'John', 
       'text': 'hello again' 
}); 

但不對數據進行存儲。我究竟做錯了什麼?

+0

你如何檢查它的存儲?我自己還沒有使用Firebase,所以這可能是一個愚蠢的問題,但如果您使用上面的代碼檢查代碼,那麼該值可能已*尚未*存儲。 'push'是一個異步操作,你需要等到它完成。 'push'返回一個未來,你可以註冊一個回調,當'push'完成時被調用。然後((v){取決於推送完成的代碼});' – 2015-03-19 09:30:56

+0

Firebase允許您登錄並使用提供的URL來查看實時更新的數據。所以,即使它是一個異步操作,你也知道它沒有被改變。 – Hesh 2015-03-19 09:33:50

+0

我明白了。然後我不知道。 – 2015-03-19 09:34:35

回答

2

尋找到的火力鏢包裝混帳回購協議的測試文件後,我發現這一點:

test('push',() { 
    // TODO: actually validate the result 
    var pushRef = f.push(); 
    return pushRef.set('HAHA'); 
}); 

因此,在總結,我認爲你需要做推,然後將它的值:

f = new Firebase('https://uniqueID.firebaseio-demo.com/'); 
var pushRef = f.push(); 
pushRef.set("{'name': 'John','text': 'hello again'}"); 

請參閱火力封裝測試腳本在這裏:https://github.com/firebase/firebase-dart/blob/master/test/test.dart

+1

Voila!有效。我也看過git dart wrapper文件,但不知何故,我錯過了這個。謝謝。 – Hesh 2015-03-19 11:16:11

+0

@Hesh歡迎您:)很高興能幫到您! – 2015-03-19 11:23:58

2

對於dart version firebase庫我現在使用的最新版本(v0.6.3),這是非常簡單的使用推(並使用將來移動到下一個動作)

firebaseRef = new Firebase('https://uniqueID.firebaseio-demo.com/'); 
firebaseRef.push(value: {"hi": "dart"}, onComplete: (err) { 
    print("err = ${err}"); 
});