Flutter中Firebase能否使用双重where查询?代码是否正确?
你的Firebase查询代码是否正确?
这段代码的语法是正确的,它符合Firebase Firestore多条件相等查询的写法,通过链式调用where方法组合两个相等条件,能正确筛选出userID等于当前用户ID且name等于指定medName的文档。
不过要确保以下几点,才能保证查询正常工作:
- 确认
userMedDB.userMedCollection是指向Firestore中目标集合的有效引用。 - 检查
Auth().uID能正确获取已认证用户的ID,避免出现空值或无效ID的情况。 - Firestore对多个
isEqualTo条件的查询不需要手动创建复合索引,但如果后续查询逻辑加入范围类条件(如isGreaterThan、isLessThan),则需要在Firebase控制台创建对应复合索引。
如果查询未返回预期结果,可以从这些方向排查:
- 验证数据库中是否存在同时满足
userID和name条件的文档。 - 确认
medName的取值与文档中name字段完全匹配(Firestore查询区分大小写和空格)。 - 检查Firestore安全规则是否允许当前用户读取该集合的文档。
内容的提问来源于stack exchange,提问作者Reema AlDumikhi
相关产品推荐
相关产品推荐

