firebase / firebase-js-sdk

Firebase Javascript SDK
https://firebase.google.com/docs/web/setup
Other
4.86k stars 893 forks source link

Issue with documentId() in conjunction with an or filter #8049

Open ArthurDias01 opened 8 months ago

ArthurDias01 commented 8 months ago

Operating System

windows 11

Browser Version

Windows 11 Pro 23H2 22631.3155

Firebase SDK Version

9.21.0

Firebase SDK Product:

Firestore

Describe your project's tooling

We are using firebase alongside expo to create an all platform app.

"@react-native-firebase/analytics": "^18.2.0", "@react-native-firebase/app": "^18.2.0", "@react-native-firebase/app-check": "^18.2.0", "@react-native-firebase/auth": "^18.2.0", "firebase": "^9.21.0",

Describe the problem

We were tring to accomplish a composite query that would fetch documents by Id or other property. The problem is whenever we try to use the documentId() method, the app throws an error saying we can't use that query because we need to create an index.

image

then when we follow the link to create the query we face a firebase error:

image

so we can't really query by id or another document field.

Because changing it to this works no problem and doesn't request you to create an index

.where(Filter.or(Filter.where('field1', '==', 'value'), Filter.where('field2', '==', 'value')))

Steps and code to reproduce issue

minimal reproducible code:

import { firestore } from 'firebase-admin'
import FieldPath = firestore.FieldPath
import Filter = firestore.Filter

const db = firestore()

export async function run(db: FirebaseFirestore.Firestore) {

  db.collection('farms')
    .where(Filter.or(Filter.where(FieldPath.documentId(), '==', 'value'), Filter.where('field2', '==', 'value')))
    .get()
    .then((snapshot) => {
      console.log(snapshot)
    })
}
cherylEnkidu commented 8 months ago

Hi @ArthurDias01 ,

Thank you for filling up this ticket! The bug has been verified (internal tracking ticket: b/328297935) I will update this ticket when bug is fixed.

khevamann commented 8 months ago

Any update on this one?

atsjo commented 1 month ago

Any updates on this? I just ran into the same problem trying to combine a 'in' query on documentId with another field query via OR in firebase-admin 12.5.0...