Node.jsFirebase を使用するときに Q ライブラリ (または同様のライブラリ、私は部分的ではありません)でデータの配列を返す最適な使用例を見つけようとしています.on("child_added")。
使用してみましQ.all()たが、約束が満たされるのを待ってから戻ることはないようです。これは私の現在の例です:
function getIndex()
{
    var deferred = q.defer();
    deferred.resolve(new FirebaseIndex( Firebase.child('users').child(user.app_user_id).child('posts'), Firebase.child('posts') ) );
    return deferred.promise;
}
function getPost( post )
{
    var deferred = q.defer();
    deferred.resolve(post.val());
    return deferred.promise;
}
function getPosts()
{
    var promises = [];          
    getIndex().then( function (posts) {
        posts.on( 'child_added', function (_post) {
            promises.push( getPost(_post) );
        });
    });
    return q.all(promises);
}