首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firebase查询语句whereField(notIn)不起作用

Firebase查询语句whereField(notIn)不起作用
EN

Stack Overflow用户
提问于 2020-10-21 15:18:11
回答 2查看 70关注 0票数 0

以下是我的代码的一部分

代码语言:javascript
复制
db.collection("Activities").whereField("read", notIn: [Auth.auth().currentUser!.uid]).limit(to: 10).getDocuments{ (querySnapshot, error)

我可以看到我的uid是"Y31FESSEmZgb6F9mPQoQLrgymnQ2“。

这是我的数据库图片

但是,查询结果将包含具有此uid的数据。查询whereField复合似乎不起作用。如何修复它?

EN

回答 2

Stack Overflow用户

发布于 2020-10-21 17:11:12

调用whereField(_:notIn:)时,将read数组与作为notIn参数传入的数组中的每个元素进行比较。notIn数组中唯一的元素是uid字符串。由于您正在将数组(read)与字符串(uid)进行比较,因此会得到意外的结果。

如果我是您,我会尝试使用filter(using:)方法,看看这是否能满足您的需求。这可能是您需要的:

代码语言:javascript
复制
let predicate = NSPredicate(format: "NOT (ANY read == %@)", Auth.auth().currentUser!.uid)
db.collection("Activities").filter(using: predicate)
票数 0
EN

Stack Overflow用户

发布于 2020-10-22 10:16:52

似乎"notIn“是firebase的一个新命令,并没有明确的例子来说明我想要什么。因此,我使用了一种笨拙的方法,即手动设置限制,然后达到限制将中断循环。使用if array.contains来确定它是否存在于数组中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64458481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档