Why does this simple Firestore 'where' query take so long?
This query is taking longer than 10 minutes to execute and I can't figure out why. In case it's a factor, I'm running it when my app loads in react native's componentDidMount method.
There are about 12k docs in the users collection, but only about 30 of which have a fetchStatus of 206. It also seems to slow down my computer and/or internet connection while it's running.
Here's the code:
firebase.firestore().collection('users').where("fetchStatus","==",206).get()
.then(querySnap => {
console.log(querySnap.size)
})
EDIT:
It seems it's something to do with my React Native environment. When I run the query via a Cloud Function, via this code, it's nice and quick:
export const count206 = functions.https.onRequest(async (request, response) => {
try {
const querySnap = await db.collection('users').where("fetchStatus","==",206).get()
console.log(querySnap.size)
response.send("ok")
} catch (error) {
console.log(error)
response.send(error.message)
}
})
javascript firebase react-native google-cloud-firestore
add a comment |
This query is taking longer than 10 minutes to execute and I can't figure out why. In case it's a factor, I'm running it when my app loads in react native's componentDidMount method.
There are about 12k docs in the users collection, but only about 30 of which have a fetchStatus of 206. It also seems to slow down my computer and/or internet connection while it's running.
Here's the code:
firebase.firestore().collection('users').where("fetchStatus","==",206).get()
.then(querySnap => {
console.log(querySnap.size)
})
EDIT:
It seems it's something to do with my React Native environment. When I run the query via a Cloud Function, via this code, it's nice and quick:
export const count206 = functions.https.onRequest(async (request, response) => {
try {
const querySnap = await db.collection('users').where("fetchStatus","==",206).get()
console.log(querySnap.size)
response.send("ok")
} catch (error) {
console.log(error)
response.send(error.message)
}
})
javascript firebase react-native google-cloud-firestore
Have you, by any chance, disabled indexing on thatfetchStatus
field?
– jubobs
Jan 3 at 13:46
stackoverflow.com/questions/46717898/…
– Ali Özyıldırım
Jan 3 at 13:49
1
@jubobs: a missing index should cause the query to fail on Firestore (unlike on Firebase's realtime database, where it'd download all data and filter client-side).
– Frank van Puffelen
Jan 3 at 13:59
@FrankvanPuffelen Thanks. I did not know that.
– jubobs
Jan 3 at 14:05
@jubobs Good thought, but no I have not disabled indexing on that field.
– timraybould
Jan 3 at 15:48
add a comment |
This query is taking longer than 10 minutes to execute and I can't figure out why. In case it's a factor, I'm running it when my app loads in react native's componentDidMount method.
There are about 12k docs in the users collection, but only about 30 of which have a fetchStatus of 206. It also seems to slow down my computer and/or internet connection while it's running.
Here's the code:
firebase.firestore().collection('users').where("fetchStatus","==",206).get()
.then(querySnap => {
console.log(querySnap.size)
})
EDIT:
It seems it's something to do with my React Native environment. When I run the query via a Cloud Function, via this code, it's nice and quick:
export const count206 = functions.https.onRequest(async (request, response) => {
try {
const querySnap = await db.collection('users').where("fetchStatus","==",206).get()
console.log(querySnap.size)
response.send("ok")
} catch (error) {
console.log(error)
response.send(error.message)
}
})
javascript firebase react-native google-cloud-firestore
This query is taking longer than 10 minutes to execute and I can't figure out why. In case it's a factor, I'm running it when my app loads in react native's componentDidMount method.
There are about 12k docs in the users collection, but only about 30 of which have a fetchStatus of 206. It also seems to slow down my computer and/or internet connection while it's running.
Here's the code:
firebase.firestore().collection('users').where("fetchStatus","==",206).get()
.then(querySnap => {
console.log(querySnap.size)
})
EDIT:
It seems it's something to do with my React Native environment. When I run the query via a Cloud Function, via this code, it's nice and quick:
export const count206 = functions.https.onRequest(async (request, response) => {
try {
const querySnap = await db.collection('users').where("fetchStatus","==",206).get()
console.log(querySnap.size)
response.send("ok")
} catch (error) {
console.log(error)
response.send(error.message)
}
})
javascript firebase react-native google-cloud-firestore
javascript firebase react-native google-cloud-firestore
edited Jan 3 at 15:52
timraybould
asked Jan 3 at 13:41
timraybouldtimraybould
112
112
Have you, by any chance, disabled indexing on thatfetchStatus
field?
– jubobs
Jan 3 at 13:46
stackoverflow.com/questions/46717898/…
– Ali Özyıldırım
Jan 3 at 13:49
1
@jubobs: a missing index should cause the query to fail on Firestore (unlike on Firebase's realtime database, where it'd download all data and filter client-side).
– Frank van Puffelen
Jan 3 at 13:59
@FrankvanPuffelen Thanks. I did not know that.
– jubobs
Jan 3 at 14:05
@jubobs Good thought, but no I have not disabled indexing on that field.
– timraybould
Jan 3 at 15:48
add a comment |
Have you, by any chance, disabled indexing on thatfetchStatus
field?
– jubobs
Jan 3 at 13:46
stackoverflow.com/questions/46717898/…
– Ali Özyıldırım
Jan 3 at 13:49
1
@jubobs: a missing index should cause the query to fail on Firestore (unlike on Firebase's realtime database, where it'd download all data and filter client-side).
– Frank van Puffelen
Jan 3 at 13:59
@FrankvanPuffelen Thanks. I did not know that.
– jubobs
Jan 3 at 14:05
@jubobs Good thought, but no I have not disabled indexing on that field.
– timraybould
Jan 3 at 15:48
Have you, by any chance, disabled indexing on that
fetchStatus
field?– jubobs
Jan 3 at 13:46
Have you, by any chance, disabled indexing on that
fetchStatus
field?– jubobs
Jan 3 at 13:46
stackoverflow.com/questions/46717898/…
– Ali Özyıldırım
Jan 3 at 13:49
stackoverflow.com/questions/46717898/…
– Ali Özyıldırım
Jan 3 at 13:49
1
1
@jubobs: a missing index should cause the query to fail on Firestore (unlike on Firebase's realtime database, where it'd download all data and filter client-side).
– Frank van Puffelen
Jan 3 at 13:59
@jubobs: a missing index should cause the query to fail on Firestore (unlike on Firebase's realtime database, where it'd download all data and filter client-side).
– Frank van Puffelen
Jan 3 at 13:59
@FrankvanPuffelen Thanks. I did not know that.
– jubobs
Jan 3 at 14:05
@FrankvanPuffelen Thanks. I did not know that.
– jubobs
Jan 3 at 14:05
@jubobs Good thought, but no I have not disabled indexing on that field.
– timraybould
Jan 3 at 15:48
@jubobs Good thought, but no I have not disabled indexing on that field.
– timraybould
Jan 3 at 15:48
add a comment |
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%2f54023459%2fwhy-does-this-simple-firestore-where-query-take-so-long%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%2f54023459%2fwhy-does-this-simple-firestore-where-query-take-so-long%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
Have you, by any chance, disabled indexing on that
fetchStatus
field?– jubobs
Jan 3 at 13:46
stackoverflow.com/questions/46717898/…
– Ali Özyıldırım
Jan 3 at 13:49
1
@jubobs: a missing index should cause the query to fail on Firestore (unlike on Firebase's realtime database, where it'd download all data and filter client-side).
– Frank van Puffelen
Jan 3 at 13:59
@FrankvanPuffelen Thanks. I did not know that.
– jubobs
Jan 3 at 14:05
@jubobs Good thought, but no I have not disabled indexing on that field.
– timraybould
Jan 3 at 15:48