Firebase database speed up simple read
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
|
show 3 more comments
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
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
|
show 3 more comments
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
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
android firebase firebase-realtime-database
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
|
show 3 more comments
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
|
show 3 more comments
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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