我正在使用firebase和javascript。我试图从两个表执行查询后从firebase-database返回一个数组。当我调试我的数据时,我得到了一个单独的数据和对象。
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);
});
});
这会记录两个单独的数组和对象:[{"text":"How are you","chatId":"chatId"}] [{"text":"Hi friend","chatId":"chatId2"}]
我想要的结果是[{"text": "How are you","chatId":"chatId"}, {"text":"Hi friend","chatId":"chatId2"}]
这是我的数据结构: data structure
如何达到理想的效果?感谢
答案 0 :(得分:0)
只需使用apply.push即可加入任意数量的数组。但是,您可能想要移动items = [];函数外的数组。这是造成问题的原因。每次推动/发挥功能时都会清空阵列。
var ar1 = [{
"text": "How are you",
"chatId": "chatId"
}];
var ar2 = [{
"text": "Hi friend",
"chatId": "chatId2"
}];
ar1.push.apply(ar1, ar2);
console.log(ar1);