Firebase 为什么Firestore忽略了';数组包含';这个复合查询的一部分?

Firebase 为什么Firestore忽略了';数组包含';这个复合查询的一部分?,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,以下查询将返回(“flag”、“==”、“someFlag”)的结果,就好像数组_包含部分查询不存在一样: myRef .collection('someCollection') .where("flag","==","someFlag") .where("folders","array_contains","test string") .get() 我的预期是,此查询将在控制台中产生一个错误,并带有一个链接,用于为查询中的两个字段创建复合索引。我可以自己创建索引,但不想在不完

以下查询将返回(“flag”、“==”、“someFlag”)的结果,就好像数组_包含部分查询不存在一样:

myRef
  .collection('someCollection')
  .where("flag","==","someFlag")
  .where("folders","array_contains","test string")
  .get()
我的预期是,此查询将在控制台中产生一个错误,并带有一个链接,用于为查询中的两个字段创建复合索引。我可以自己创建索引,但不想在不完全了解情况的情况下创建索引

编辑: 这个乱七八糟的查询具有相同的效果(返回“flag==someFlag”的结果)。它不应该抛出一个错误吗

myRef
  .collection('someCollection')
  .where("flag","==","someFlag")
  .where("asdf","asdf","asdf")
  .get()

我假设您正在使用Web SDK。注意,语法是

.where("folders","array-contains","test string")
而不是

.where("folders","array_contains","test string")

问题是什么?为什么查询没有失败并符合所述的期望?我会编辑标题。@timraybould很高兴我能帮忙!你也可以投票支持我的答案,见。谢谢