Skip to content

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

Open
@ArthurDias01

Description

@ArthurDias01

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions