

## 質問

Firebase SDK を利用して、Firestoreのクエリを作成しています。  
・ドキュメントIDの完全一致  
・フィールド1つの完全一致  
これらのクエリを使ってOR検索するにはどうすればいいでしょうか。

公式doc を見てみましたが、具体的な内容が見つかりませんでした。

## 調査詳細

下記のようなコードを作りました。

[code]

    await getDocs(
      query(
        colRef,
        or(
          where(documentId(), "==", "foo"),
          where("name", "==", "bar"),
        )
      )
    )
    
[/code]

向き先を Firestore エミュレータに設定して実行すると成功しますが、  
実際の Firestore に対して実行すると、下記のエラーが表示されます。

[code]

    FirebaseError: The query requires an index. You can create it here: https://console.firebase.google.com/v1/r/project/****
    
[/code]

このリンクをクリックしてFirebaseにアクセスすると下記が表示されます。

フィールド | オーダー | ステータス  
---|---|---  
__name__ | 昇順 | 作成が必要  
  
ここで、「作成」ボタンをクリックすると下記のエラー表示。

[code]

    __name__ only indexes are not supported
    
[/code]

手動で複合インデックスを作成しようと下記のように入力

|  |  
---|---|---  
1 | name | Ascending  
2 | __name__ | Ascending  
  
これで「インデックスを作成」ボタンをクリックすると下記のエラー表示。

[code]

    this index is not necessary, configure using single field index controls
    
[/code]

## 環境

[code]

    "firebase": "^10.3.1",
    
[/code]

[code]

    ❯ node --version
    v18.17.1
    
[/code]


CC BY-SA 4.0
2023-09-22T09:24:02.813
96309
2023-09-22T09:24:28.097
2023-09-22T09:24:28.097
45179
45179
question
node.js firebase
Firestoreで ドキュメントID と フィールドの OR 検索は可能でしょうか。