2016-10-29 11 views
0

これはかなり基本的な質問ですので、事前にお詫び申し上げます。しかし、私は一晩中これを苦労しています。私は単純なfirebaseデータベースクエリを持っています...私は作品を知っています..私はchild_addedを使用するので、私は照会している場所から別のノードごとに数回戻ります。ファイアベーシス約束の返信

私はコールバックが完了した後にコールバックを補完しようとしています。今では約10の異なる値が返されるので、私の目標は、データベース参照の終了後に約束やコールバックを使用してコードを実行することです。

var getIsStarred = getFirebase().database().ref('feed/value').on('child_added').then(function(snapshot) { 
    console.log("JX10: ok") 
    }); 

Promise.(getIsStarred).then(function(results) { 
    console.log("JX10: end promise thing okay sick") 
}); 

ありがとうございました!

+1

'itllがそれぞれ異なるnode'のために数回を返す - 約束だけ正確に一度満たすことができるので、あなたが、約束を使用することはできません...'ん.on( 'child_added') 'も約束を返しますか? –

答えて

1

Firebaseのon()機能のドキュメントはここにある:https://firebase.google.com/docs/reference/js/firebase.database.Reference#on

あなたが見ることができるように、それはコールバックを望んでいるし、また必要であれば、それはoff()呼び出しのパラメータとして使用することができるようにコールバックを返します。約束がどこにも返されないように見える。

2

すべての子が読み込まれた後にアクションを実行しようとしているようです。あなたがonce('value'ハンドラでそれを行うだろう:

var getIsStarred = getFirebase().database().ref('feed/value').once('value').then(function(snapshot) { 
    console.log("the initial items have been loaded") 
});