Firebase database speed up simple read












1















I was doing some profiling in my firebase database and I found one single anomaly



Read Speed
┌───────────────────────────────┬───────┬─────────────┬───────────────────┐
│ Path │ Count │ Average │ Permission Denied │
├───────────────────────────────┼───────┼─────────────┼───────────────────┤
│ /safeList │ 4 │ 3,092.50 ms │ 0 │
├───────────────────────────────┼───────┼─────────────┼───────────────────┤


It means every request to that structure took over 3 seconds. It's not the worst problem in the world but still strange.



safelist is a list of strings ordered by length manually and then imported into firebase. The list contains about 8000 strings of length 5 to 25.



These requests were made by me and each of them requested only the first 5000 samples from the set.



My question is:




  • Is there any way to improve the read performance?

  • If I simply request the whole set instead of the first 5000 would it be faster?

  • Any suggestions for a bigger sets of primitives?


==========UPDATE============



Some people are asking about data and code.



the only code where i call this query is:
firebase.child("safeList").limitToFirst(5000).addListenerForSingleValueEvent(new ValueEventListener() { //do stuff



i didn't put because is pretty dumb
and as said in the description:
Safelist is a List of String with about 8000 items ordered manually by length



the database rules related to it:



"safeList":{
".read":"root.child('premiums').child(auth.uid).exists()",
".write":false,
".indexOn" : ".value"
},


It takes average 3000ms when the second slowest query takes only 60ms










share|improve this question

























  • read data into limits go set by set or make some service to read data in background and save it into database

    – Har Kal
    Nov 18 '18 at 23:10











  • It's impossible to say it things can be faster without seeing the exact data and code. See if you can reproduce the problem in a site like jsbin, so that we can have a look (the performance is likely to be quite similar between Android and JavaScript).

    – Frank van Puffelen
    Nov 19 '18 at 3:55











  • Please add the code that you are using to get the data from the database and please responde with @.

    – Alex Mamo
    Nov 19 '18 at 10:12











  • @FrankvanPuffelen, the exact data is kind impossible to share, and the code is pretty dumb as you can see in my update

    – Rafael Lima
    Nov 19 '18 at 14:29











  • @AlexMamo, i believe it is because google takes longer to reduce the set from 8k to 5k

    – Rafael Lima
    Nov 19 '18 at 14:30
















1















I was doing some profiling in my firebase database and I found one single anomaly



Read Speed
┌───────────────────────────────┬───────┬─────────────┬───────────────────┐
│ Path │ Count │ Average │ Permission Denied │
├───────────────────────────────┼───────┼─────────────┼───────────────────┤
│ /safeList │ 4 │ 3,092.50 ms │ 0 │
├───────────────────────────────┼───────┼─────────────┼───────────────────┤


It means every request to that structure took over 3 seconds. It's not the worst problem in the world but still strange.



safelist is a list of strings ordered by length manually and then imported into firebase. The list contains about 8000 strings of length 5 to 25.



These requests were made by me and each of them requested only the first 5000 samples from the set.



My question is:




  • Is there any way to improve the read performance?

  • If I simply request the whole set instead of the first 5000 would it be faster?

  • Any suggestions for a bigger sets of primitives?


==========UPDATE============



Some people are asking about data and code.



the only code where i call this query is:
firebase.child("safeList").limitToFirst(5000).addListenerForSingleValueEvent(new ValueEventListener() { //do stuff



i didn't put because is pretty dumb
and as said in the description:
Safelist is a List of String with about 8000 items ordered manually by length



the database rules related to it:



"safeList":{
".read":"root.child('premiums').child(auth.uid).exists()",
".write":false,
".indexOn" : ".value"
},


It takes average 3000ms when the second slowest query takes only 60ms










share|improve this question

























  • read data into limits go set by set or make some service to read data in background and save it into database

    – Har Kal
    Nov 18 '18 at 23:10











  • It's impossible to say it things can be faster without seeing the exact data and code. See if you can reproduce the problem in a site like jsbin, so that we can have a look (the performance is likely to be quite similar between Android and JavaScript).

    – Frank van Puffelen
    Nov 19 '18 at 3:55











  • Please add the code that you are using to get the data from the database and please responde with @.

    – Alex Mamo
    Nov 19 '18 at 10:12











  • @FrankvanPuffelen, the exact data is kind impossible to share, and the code is pretty dumb as you can see in my update

    – Rafael Lima
    Nov 19 '18 at 14:29











  • @AlexMamo, i believe it is because google takes longer to reduce the set from 8k to 5k

    – Rafael Lima
    Nov 19 '18 at 14:30














1












1








1








I was doing some profiling in my firebase database and I found one single anomaly



Read Speed
┌───────────────────────────────┬───────┬─────────────┬───────────────────┐
│ Path │ Count │ Average │ Permission Denied │
├───────────────────────────────┼───────┼─────────────┼───────────────────┤
│ /safeList │ 4 │ 3,092.50 ms │ 0 │
├───────────────────────────────┼───────┼─────────────┼───────────────────┤


It means every request to that structure took over 3 seconds. It's not the worst problem in the world but still strange.



safelist is a list of strings ordered by length manually and then imported into firebase. The list contains about 8000 strings of length 5 to 25.



These requests were made by me and each of them requested only the first 5000 samples from the set.



My question is:




  • Is there any way to improve the read performance?

  • If I simply request the whole set instead of the first 5000 would it be faster?

  • Any suggestions for a bigger sets of primitives?


==========UPDATE============



Some people are asking about data and code.



the only code where i call this query is:
firebase.child("safeList").limitToFirst(5000).addListenerForSingleValueEvent(new ValueEventListener() { //do stuff



i didn't put because is pretty dumb
and as said in the description:
Safelist is a List of String with about 8000 items ordered manually by length



the database rules related to it:



"safeList":{
".read":"root.child('premiums').child(auth.uid).exists()",
".write":false,
".indexOn" : ".value"
},


It takes average 3000ms when the second slowest query takes only 60ms










share|improve this question
















I was doing some profiling in my firebase database and I found one single anomaly



Read Speed
┌───────────────────────────────┬───────┬─────────────┬───────────────────┐
│ Path │ Count │ Average │ Permission Denied │
├───────────────────────────────┼───────┼─────────────┼───────────────────┤
│ /safeList │ 4 │ 3,092.50 ms │ 0 │
├───────────────────────────────┼───────┼─────────────┼───────────────────┤


It means every request to that structure took over 3 seconds. It's not the worst problem in the world but still strange.



safelist is a list of strings ordered by length manually and then imported into firebase. The list contains about 8000 strings of length 5 to 25.



These requests were made by me and each of them requested only the first 5000 samples from the set.



My question is:




  • Is there any way to improve the read performance?

  • If I simply request the whole set instead of the first 5000 would it be faster?

  • Any suggestions for a bigger sets of primitives?


==========UPDATE============



Some people are asking about data and code.



the only code where i call this query is:
firebase.child("safeList").limitToFirst(5000).addListenerForSingleValueEvent(new ValueEventListener() { //do stuff



i didn't put because is pretty dumb
and as said in the description:
Safelist is a List of String with about 8000 items ordered manually by length



the database rules related to it:



"safeList":{
".read":"root.child('premiums').child(auth.uid).exists()",
".write":false,
".indexOn" : ".value"
},


It takes average 3000ms when the second slowest query takes only 60ms







android firebase firebase-realtime-database






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 19 '18 at 14:28







Rafael Lima

















asked Nov 18 '18 at 22:00









Rafael LimaRafael Lima

433416




433416













  • read data into limits go set by set or make some service to read data in background and save it into database

    – Har Kal
    Nov 18 '18 at 23:10











  • It's impossible to say it things can be faster without seeing the exact data and code. See if you can reproduce the problem in a site like jsbin, so that we can have a look (the performance is likely to be quite similar between Android and JavaScript).

    – Frank van Puffelen
    Nov 19 '18 at 3:55











  • Please add the code that you are using to get the data from the database and please responde with @.

    – Alex Mamo
    Nov 19 '18 at 10:12











  • @FrankvanPuffelen, the exact data is kind impossible to share, and the code is pretty dumb as you can see in my update

    – Rafael Lima
    Nov 19 '18 at 14:29











  • @AlexMamo, i believe it is because google takes longer to reduce the set from 8k to 5k

    – Rafael Lima
    Nov 19 '18 at 14:30



















  • read data into limits go set by set or make some service to read data in background and save it into database

    – Har Kal
    Nov 18 '18 at 23:10











  • It's impossible to say it things can be faster without seeing the exact data and code. See if you can reproduce the problem in a site like jsbin, so that we can have a look (the performance is likely to be quite similar between Android and JavaScript).

    – Frank van Puffelen
    Nov 19 '18 at 3:55











  • Please add the code that you are using to get the data from the database and please responde with @.

    – Alex Mamo
    Nov 19 '18 at 10:12











  • @FrankvanPuffelen, the exact data is kind impossible to share, and the code is pretty dumb as you can see in my update

    – Rafael Lima
    Nov 19 '18 at 14:29











  • @AlexMamo, i believe it is because google takes longer to reduce the set from 8k to 5k

    – Rafael Lima
    Nov 19 '18 at 14:30

















read data into limits go set by set or make some service to read data in background and save it into database

– Har Kal
Nov 18 '18 at 23:10





read data into limits go set by set or make some service to read data in background and save it into database

– Har Kal
Nov 18 '18 at 23:10













It's impossible to say it things can be faster without seeing the exact data and code. See if you can reproduce the problem in a site like jsbin, so that we can have a look (the performance is likely to be quite similar between Android and JavaScript).

– Frank van Puffelen
Nov 19 '18 at 3:55





It's impossible to say it things can be faster without seeing the exact data and code. See if you can reproduce the problem in a site like jsbin, so that we can have a look (the performance is likely to be quite similar between Android and JavaScript).

– Frank van Puffelen
Nov 19 '18 at 3:55













Please add the code that you are using to get the data from the database and please responde with @.

– Alex Mamo
Nov 19 '18 at 10:12





Please add the code that you are using to get the data from the database and please responde with @.

– Alex Mamo
Nov 19 '18 at 10:12













@FrankvanPuffelen, the exact data is kind impossible to share, and the code is pretty dumb as you can see in my update

– Rafael Lima
Nov 19 '18 at 14:29





@FrankvanPuffelen, the exact data is kind impossible to share, and the code is pretty dumb as you can see in my update

– Rafael Lima
Nov 19 '18 at 14:29













@AlexMamo, i believe it is because google takes longer to reduce the set from 8k to 5k

– Rafael Lima
Nov 19 '18 at 14:30





@AlexMamo, i believe it is because google takes longer to reduce the set from 8k to 5k

– Rafael Lima
Nov 19 '18 at 14:30












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53365894%2ffirebase-database-speed-up-simple-read%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53365894%2ffirebase-database-speed-up-simple-read%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

鏡平學校

ꓛꓣだゔៀៅຸ໢ທຮ໕໒ ,ໂ'໥໓າ໼ឨឲ៵៭ៈゎゔit''䖳𥁄卿' ☨₤₨こゎもょの;ꜹꟚꞖꞵꟅꞛေၦေɯ,ɨɡ𛃵𛁹ޝ޳ޠ޾,ޤޒޯ޾𫝒𫠁သ𛅤チョ'サノބޘދ𛁐ᶿᶇᶀᶋᶠ㨑㽹⻮ꧬ꧹؍۩وَؠ㇕㇃㇪ ㇦㇋㇋ṜẰᵡᴠ 軌ᵕ搜۳ٰޗޮ޷ސޯ𫖾𫅀ल, ꙭ꙰ꚅꙁꚊꞻꝔ꟠Ꝭㄤﺟޱސꧨꧼ꧴ꧯꧽ꧲ꧯ'⽹⽭⾁⿞⼳⽋២៩ញណើꩯꩤ꩸ꩮᶻᶺᶧᶂ𫳲𫪭𬸄𫵰𬖩𬫣𬊉ၲ𛅬㕦䬺𫝌𫝼,,𫟖𫞽ហៅ஫㆔ాఆఅꙒꚞꙍ,Ꙟ꙱エ ,ポテ,フࢰࢯ𫟠𫞶 𫝤𫟠ﺕﹱﻜﻣ𪵕𪭸𪻆𪾩𫔷ġ,ŧآꞪ꟥,ꞔꝻ♚☹⛵𛀌ꬷꭞȄƁƪƬșƦǙǗdžƝǯǧⱦⱰꓕꓢႋ神 ဴ၀க௭எ௫ឫោ ' េㇷㇴㇼ神ㇸㇲㇽㇴㇼㇻㇸ'ㇸㇿㇸㇹㇰㆣꓚꓤ₡₧ ㄨㄟ㄂ㄖㄎ໗ツڒذ₶।ऩछएोञयूटक़कयँृी,冬'𛅢𛅥ㇱㇵㇶ𥄥𦒽𠣧𠊓𧢖𥞘𩔋цѰㄠſtʯʭɿʆʗʍʩɷɛ,əʏダヵㄐㄘR{gỚṖḺờṠṫảḙḭᴮᵏᴘᵀᵷᵕᴜᴏᵾq﮲ﲿﴽﭙ軌ﰬﶚﶧ﫲Ҝжюїкӈㇴffצּ﬘﭅﬈軌'ffistfflſtffतभफɳɰʊɲʎ𛁱𛁖𛁮𛀉 𛂯𛀞నఋŀŲ 𫟲𫠖𫞺ຆຆ ໹້໕໗ๆทԊꧢꧠ꧰ꓱ⿝⼑ŎḬẃẖỐẅ ,ờỰỈỗﮊDžȩꭏꭎꬻ꭮ꬿꭖꭥꭅ㇭神 ⾈ꓵꓑ⺄㄄ㄪㄙㄅㄇstA۵䞽ॶ𫞑𫝄㇉㇇゜軌𩜛𩳠Jﻺ‚Üမ႕ႌႊၐၸဓၞၞၡ៸wyvtᶎᶪᶹစဎ꣡꣰꣢꣤ٗ؋لㇳㇾㇻㇱ㆐㆔,,㆟Ⱶヤマފ޼ޝަݿݞݠݷݐ',ݘ,ݪݙݵ𬝉𬜁𫝨𫞘くせぉて¼óû×ó£…𛅑הㄙくԗԀ5606神45,神796'𪤻𫞧ꓐ㄁ㄘɥɺꓵꓲ3''7034׉ⱦⱠˆ“𫝋ȍ,ꩲ軌꩷ꩶꩧꩫఞ۔فڱێظペサ神ナᴦᵑ47 9238їﻂ䐊䔉㠸﬎ffiﬣ,לּᴷᴦᵛᵽ,ᴨᵤ ᵸᵥᴗᵈꚏꚉꚟ⻆rtǟƴ𬎎

Why https connections are so slow when debugging (stepping over) in Java?