I want to query Firestore db and order by two fields. Official docs suggest I can simply combine the orderBy statements via orderBy('field1').orderBy('field2')
but when I run similar code, I get the following error in console:
Project.js:62 Uncaught (in promise) TypeError: (0 , firebase_firestore__WEBPACK_IMPORTED_MODULE_0__.orderBy)(...).orderBy is not a function
My code:
const projectRef = doc(db, 'projects', projectId)
const docSnap = await getDoc(projectRef)
if(docSnap.exists()) {
const imagesInfoRef = collection(db, 'projectGalleryImages')
const imagesInfoDocsSnapshot = await getDocs(query(imagesInfoRef, where('project', '==', projectRef), orderBy('displayOrder').orderBy('createdOn')))
imagesInfoDocsSnapshot.docs.map(imageInfo => {
const imageRef = ref(storage, `project/${projectId}/images/${imageInfo.fileName}`)
loadImageURL(imageRef)
})
}
Why am I getting this error?
CodePudding user response:
You're mixing the older namespaced syntax with the newer modular syntax. In the latter, each orderBy
call is a standalone instruction:
query(imagesInfoRef,
where('project', '==', projectRef),
orderBy('displayOrder'), //