Firebase需要很长时间才能获取数据(javascript)

时间:2017-07-14 20:35:52

标签: javascript json firebase firebase-realtime-database

/*** 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.

为什么获取数据的速度如此之慢?难道我做错了什么?我收集了太多数据吗?

我没有执行任何搜索/排序,只是获取整个数据,但仍然很慢。

1 个答案:

答案 0 :(得分:1)

知道了,我只是提取了大量数据。

ref = database.ref('locs/') 

以上一行意味着,我正在寻找everthying in locs,这是10k条目。

我将其更改为ref = database.ref('locs/' + some_variable) 这意味着我只从locs获取所需的条目。