Firestore查询文档startswith一个字符串

是否可以查询firestore集合以获取以特定字符串开头的所有文档?

我已经阅读了文档,但没有找到任何合适的查询。

你可以,但它很棘手。 您需要搜索大于或等于所需字符串的文档,而不是后续密钥。

例如,要查找包含'bar'字段'foo'文档,您将查询:

 db.collection(c) .where('foo', '>=', 'bar') .where('foo', '<', 'bas'); 

这实际上是我们在客户端实现中用于扫描与路径匹配的文档集合的技术。 我们的后继密钥计算由扫描程序调用,该扫描程序正在查找以当前用户ID开头的所有密钥。

与Gil Gilbert的回答相同。 只是一个增强和一些示例代码。 使用String.fromCharCode和String.charCodeAt

 var strSearch = "start with text here"; var strlength = strSearch.length; var strFrontCode = strSearch.slice(0, strlength-1); var strEndCode = strSearch.slice(strlength-1, strSearch.length); var startcode = strSearch; var endcode= strFrontCode + String.fromCharCode(strEndCode.charCodeAt(0) + 1); 

然后过滤下面的代码。

 db.collection(c) .where('foo', '>=', startcode) .where('foo', '<', endcode); 

适用于任何语言和任何Unicode。

警告:firestore中的所有搜索条件都是CASE SENSITIVE。