Javascript 如何从firebase数据库数据列表中返回一个数组

Javascript 如何从firebase数据库数据列表中返回一个数组,javascript,arrays,firebase,react-native,firebase-realtime-database,Javascript,Arrays,Firebase,React Native,Firebase Realtime Database,我正在使用firebase和javascript。在从两个表执行查询之后,我尝试从firebase数据库返回一个数组。当我使用console.log记录数据时,我会为每一位数据获取一个单独的数组和对象 var userId = 'hirerId'; var chatIdRef = firebase.database().ref("members"); var chatsRef = firebase.database().ref("chats"); chatIdRef.child(userId)

我正在使用firebase和javascript。在从两个表执行查询之后,我尝试从firebase数据库返回一个数组。当我使用console.log记录数据时,我会为每一位数据获取一个单独的数组和对象

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”:“你好”,“chatId”:“chatId”}][{“text”:“Hi friend”,“chatId”:“chatId2”}]

我想要的结果是
[{“text”:“你好”,“chatId”:“chatId”},{“text”:“你好,朋友”,“chatId”:“chatId2”}]

这是我的数据结构:


我怎样才能达到我想要的结果?谢谢

只需使用apply.push即可加入任意数量的阵列。但是,您可能希望移动项目=[];函数外部的数组。这就是造成你问题的原因。每次推送/函数激发时都会清空阵列

var ar1=[{
“文本”:“你好”,
“chatId”:“chatId”
}];
变量ar2=[{
“文本”:“你好,朋友”,
“chatId”:“chatId2”
}];
ar1.推送应用(ar1,ar2);

控制台日志(ar1)只需使用apply.push即可加入任意数量的数组。但是,您可能希望移动项目=[];函数外部的数组。这就是造成你问题的原因。每次推送/函数激发时都会清空阵列

var ar1=[{
“文本”:“你好”,
“chatId”:“chatId”
}];
变量ar2=[{
“文本”:“你好,朋友”,
“chatId”:“chatId2”
}];
ar1.推送应用(ar1,ar2);

控制台日志(ar1)查看
Array.concat()
查看
Array.concat()
谢谢。在函数外部移动项目=[]有效。谢谢。将项=[]移动到功能外工作。