2015-06-01 3 views
0

У меня есть класс в чате, содержащий пользователей. Я могу успешно запросить этот класс и вернуть только определенные PFUsers.Parse.com Запрос PFUser на основе результатов запроса PFObject

 // get all room IDs associated with current user 
    var outerRoomQuery = PFQuery(className:Parse.CHATROOM_CLASS_NAME) 
    outerRoomQuery.whereKey(Parse.CHATROOM_USER, equalTo: PFUser.currentUser()!) 
    outerRoomQuery.selectKeys([Parse.CHATROOM_ROOMID]) 

    // get all users associated with above roomIds ignoring current User 
    var innerRoomQuery = PFQuery(className:Parse.CHATROOM_CLASS_NAME) 
    innerRoomQuery.whereKey(Parse.CHATROOM_ROOMID, matchesKey:Parse.CHATROOM_ROOMID, inQuery: outerRoomQuery) 
    innerRoomQuery.whereKey(Parse.CHATROOM_USER, notEqualTo: PFUser.currentUser()!) 
    innerRoomQuery.includeKey(Parse.CHATROOM_USER) 
    innerRoomQuery.orderByDescending(Parse.CHATROOM_UPDATEDACTION) 
    innerRoomQuery.selectKeys([Parse.CHATROOM_USER]) 

Приведенный выше запрос возвращает около 5 пользователей. мне интересно, если это возможно, чтобы объединить эти результаты с отдельным PFUser.query(), чтобы создать или что-то вроде этого запроса:

 var userQuery = PFUser.query() 
    userQuery?.whereKey(Parse.CHATROOM_USER, matchesKey:Parse.CHATROOM_USER, inQuery: innerRoomQuery) // returns nil 

    var receptionQuery = PFUser.query() 
    receptionQuery?.whereKey(Parse.USER_ROLE, equalTo:Parse.PFROLE_RECEPTIONIST) // returns around 10 receptionist users 

    var orUserQuery = PFUser.query() 
    return PFQuery.orQueryWithSubqueries([userQuery!, receptionQuery!]) 

Результат выше возвращает только регистраторами. Так что мой вопрос заключается в том, как достичь этой линии: userQuery?.whereKey(Parse.CHATROOM_USER, matchesKey:Parse.CHATROOM_USER, inQuery: innerRoomQuery)

Я знаю, что это неправильно, потому что нет «пользователь» поле (Parse.CHATROOM_USER) в классе PFUser. Мне просто интересно, есть ли способ сделать это, не отпуская сначала roomQuery и помещая возвращенные PFUsers в массив, а затем уволяя пользователей-регистраторов и объединяя массивы.

Любые идеи?

ответ

0

Я не совсем уверен, что вы просите, но если вы пытаетесь найти один запрос для определенного пользователя, я бы подошел к нему по-другому. Я бы добавил тип bool для пользовательского класса для того, что я ищу, и просто запросил для всех пользователей этот тип bool как истинный!