我在firestore上的文档中有一个子集合,如果我不在查询中添加任何条件,我可以获取子集合中的所有文档。这个剪下来的作品
let q = query(collection(this.firestore,`providers/${providerKey}/locations`))
onSnapshot(q, snapshot=>callback(snapshot))
如果我提出任何条件:
let q = query(collection(this.firestore,`providers/${providerKey}/locations`))
q = query(q, where("status","!=","DELETED")
onSnapshot(q,snapshot=>callback(snapshot)
onSnapshot(q, snapshot=>{callback(snapshot)}
我没有得到任何文档,子集合中的所有文档都有字段状态,即一个字符串,其中我有状态为“活动”和“已删除”的文档,但什么也没有找到,这肯定是我的错误,但我不明白怎么了
如果问题仅在您添加条件时发生,则很可能您缺少此查询所需的特定索引。
验证这一点并创建索引的最简单方法是在代码周围放置一个
try/catch
块并记录遇到的任何错误。在该错误中,您将找到一个 URL,它会将您带到 Firestore 控制台的正确页面以生成所需的索引,并预填充所有必需的字段。因此,您需要做的就是打开链接,单击按钮,然后等待索引创建。