Firestore比较运算符 - 包含,不包含,以.开头

Ste*_*ton 13 google-cloud-firestore

从文档"... where()方法有三个参数:要过滤的字段,比较操作和值.比较可以是<,<=,==,>或> = ... "

我们需要执行的查询是:

  • 等于(==)
  • 不等于 (???)
  • 小于(<)
  • 大于(>)
  • 小于等于(<=)
  • 大于等于(> =)
  • 包含(???)
  • 不含 (???)
  • 以..开始 (???)

在这个问题中,建议是实施全文搜索,例如Elastic或Algolia.我不需要全文搜索 - 我只需要这些基本操作符来搜索指定的字段.但我遇到的更大的问题是我的应用程序离线很长一段时间,我们将离线所需的数据缓存,离线全文搜索不是一个选项(除非你获得企业版($$) $$$$)Algolia的许可证 - 但对于我们正在寻找的东西似乎仍然过度.

当你在"???"中有任何解决方案("FIELD","???","string")是"不等于","包含","不包含",还是"以...开头"?

感谢任何想法.

Sam*_*ern 9

Cloud Firestore中没有本机"包含","不包含","以...开头"或"以...结尾"查询.

您可以使用<和接近非常有限的"开头"查询>,但是:

// All names starting with "Sa"
db.collection("people")
  .where("name", ">", "Sa")
  .where("name", "<", "Saz")
Run Code Online (Sandbox Code Playgroud)