2017-06-22 24 views
0

firebaseとjavascriptで作業しています。私は2つのテーブルからクエリを実行した後にfirebase-databaseから1つの配列を返そうとしています。私は私のconsole.log私のデータを別の配列とオブジェクトの各ビットのデータを取得します。firebase-databaseのデータリストから1つの配列を返す方法

var userId = 'hirerId'; 
var chatIdRef = firebase.database().ref("members"); 
var chatsRef = firebase.database().ref("chats"); 

chatIdRef.child(userId).on('child_added', snap => { 
    chatsRef.child(snap.key).once('value', snap => { 
    items = []; 

     items.push({ 
     text: snap.val().text, 
     chatId: snap.key 
     }); 
     console.log(items); 

     }); 
    }); 

これは、2つの別々の配列やオブジェクトをログに記録します。 data structure

どのように私は私の望ましい結果を達成することができます[{"text":"How are you","chatId":"chatId"}] [{"text":"Hi friend","chatId":"chatId2"}]

私の望ましい結果は、これは私のデータ構造である[{"text": "How are you","chatId":"chatId"}, {"text":"Hi friend","chatId":"chatId2"}]

のですか?ありがとう

+0

'Array.concat(を見てみましょう)' –

答えて

0

あなたが望むだけ多くの配列を結合するためにapply.pushを使用してください。ただし、アイテムを移動することもできます。関数の外側の配列。それがあなたの問題の原因です。あなたは、あなたがファイヤーを押す/機能するたびに配列を空にしています。

var ar1 = [{ 
 
    "text": "How are you", 
 
    "chatId": "chatId" 
 
}]; 
 
var ar2 = [{ 
 
    "text": "Hi friend", 
 
    "chatId": "chatId2" 
 
}]; 
 

 
ar1.push.apply(ar1, ar2); 
 

 
console.log(ar1);

+0

ありがとうございました。機能している項目の外にあるitems = []の移動。 – Neil

関連する問題