【问题标题】:Getting relational users from Parse从 Parse 获取关系用户
【发布时间】:2019-09-13 07:00:10
【问题描述】:

我正在尝试确定当前用户是否与我的事件有关系。

换句话说,我有用户可以加入的活动。我在事件表中存储了用户的 PFRelation。

我试过了

self.event.users.query().getObjectInBackground(withId: currentUser.objectId!, block: { (object, error) in
    if let error = error {
        //The query returned an error
        print(error.localizedDescription)
    } else {
        //The object has been retrieved
        print(object)
    }
})

do {
    let user = try self.event.users.query().getObjectWithId(currentUser.objectId!)

    if user == nil {
        currentUser.saveInBackground { (success: Bool, error: Error?) in
            eventsRelation.add(object)
        }

        usersRelation.add(currentUser)
        object.saveInBackground()


    }
} catch {
    print("Unexpected error: \(error).")
}

但无论如何,这些都会返回用户。即使他们不在关系中。

就好像他们在整个用户表上运行查询一样。

如何仅在我的子集上运行它?

【问题讨论】:

    标签: ios swift parse-platform parse-server


    【解决方案1】:

    答案是使用关系来查询。

    See here for more documentation

    所以代码看起来像这样:

    let usersRelation = event.relation(forKey: "users")
    
    let usersRelationQuery = usersRelation.query()
    
    usersRelationQuery.whereKey("objectId", equalTo: currentUser.objectId!)
    usersRelationQuery.findObjectsInBackground(block: { (objects: [PFObject]?, error: Error?) in
        if let error = error {
            print(error.localizedDescription)
        } else if let objects = objects {
            // The find succeeded.
            print("Successfully retrieved \(objects.count) scores.")
            // Do something with the found objects
            for object in objects {
                print(object.objectId as Any)
            }
        }
    })
    

    请注意,上面的event 变量来自数据库。

    如果我们不包括 whereKey 部分,那么它只会获取该关系中的那些。

    【讨论】:

      猜你喜欢
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2016-05-16
      • 2019-01-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-02
      • 1970-01-01
      相关资源
      最近更新 更多