我对swift和parse有点新意,可以使用一些帮助。我正在运行对我的数据库中所有用户的查询,以便您可以点击一个并将它们添加到您的friendRelation。但是当他们重新加载时,他们不应该看到已经处于关系中的用户。以下是我到目前为止的情况:
private func fetchUsers() {
let userQuery = PFUser.query()
userQuery?.whereKey("email", containedIn: PFUser.currentUser()!["contacts"] as! [AnyObject])
//I need a constraint to say whereKey email/objId not in friendRelation
userQuery?.orderByAscending("username")
userQuery?.findObjectsInBackgroundWithBlock({ (users, error) in
if error == nil {
self.users = users as! [PFUser]
self.tableView.reloadData()
}
})
}
有谁知道如何制定这种约束?
答案 0 :(得分:0)
如果您想要显示所有不您朋友的用户,您应该在where子句中使用 notContainedIn ,因为您希望获得所有不是您朋友的用户
在您的代码中,您检查电子邮件字段。只有当您的contacts数组是一个只包含电子邮件的数组时,它才会起作用。我认为采用以下方法之一会更好:
userQuery ? .whereKey("objectId", notContainedIn: PFUser.currentUser() !["contacts"] as![AnyObject])

总是更好地使用ID而不是其他字段以获得更好的性能(有更多原因)