/*** Define all functions here (Query)! ***/
function get_all_loc(){ //get all locs in array
ref = database.ref('locs/'); //get from -- > locs in db
ref.on('value', gotData, errData); // getData or error !
all_locs_arr = [] ; //empty array everytime button is clicked -> to show new query :P if db updated meanwhile ! silly :P
all_locs_str = ""; //empty str everytime button is clicked -> to show new query :P if db updated meanwhile ! silly :P
function gotData(data){
all_locs_arr = data.val(); console.log(all_locs_arr); //firebase func to get data from db , storing it in all_loc_arr
for(var loc_index=0; loc_index<all_locs_arr.length ; loc_index++){
all_locs_str += "<li class='class_loc' loc-id='"+loc_index+"' >"+all_locs_arr[loc_index]+"</li>";
//console.log(all_locs_str);// add all locs in string
}
get_raw_matrix();
}function errData(data){
console.log("db_error! locs !");
}
}
get_all_loc(); // call get_all_loc function to get all locations into array & str , early fetch
这是我从firebase查询数据的功能。
之后,all_locs_arr = data.val();
,我正在做console.log(all_locs_arr)
,
对于阵列(长度为10,000),在控制台上打印需要5分钟以上。
它是一个字符串数组。数组中每个字符串的大小小于10.
为什么获取数据的速度如此之慢?难道我做错了什么?我收集了太多数据吗?
我没有执行任何搜索/排序,只是获取整个数据,但仍然很慢。
答案 0 :(得分:1)
知道了,我只是提取了大量数据。
ref = database.ref('locs/')
以上一行意味着,我正在寻找everthying in locs,这是10k条目。
我将其更改为ref = database.ref('locs/' + some_variable)
这意味着我只从locs获取所需的条目。