У меня есть класс в чате, содержащий пользователей. Я могу успешно запросить этот класс и вернуть только определенные 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 в массив, а затем уволяя пользователей-регистраторов и объединяя массивы.
Любые идеи?