Why does this simple Firestore 'where' query take so long?












0















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)
}
})









share|improve this question

























  • 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


















0















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)
}
})









share|improve this question

























  • 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
















0












0








0








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)
}
})









share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 3 at 15:52







timraybould

















asked Jan 3 at 13:41









timraybouldtimraybould

112




112













  • 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





















  • 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



















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














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%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
















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%2f54023459%2fwhy-does-this-simple-firestore-where-query-take-so-long%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

Monofisismo

Angular Downloading a file using contenturl with Basic Authentication

Olmecas