2015-03-19 2 views
0

Так я настроил свои отношения правильно анализировать, используя следующий код:Parse.com Get пользователя Кто как объект

var user = PFUser.currentUser() var relation = user.relationForKey("likes") relation.addObject(self.post) user.saveInBackgroundWithBlock({ (Bool, error) -> Void in println("user likes this post") // Used for tracking in the PFTableCell for UI parts self.userLikes = true })

Когда вид нагрузки, мне нужно изменить кнопки в избранное и цвет и т. д. Я хотел бы получить всех пользователей, которым понравился этот конкретный пост, но не может понять запрос? Это даст мне другую полезную информацию (например, я мог бы отображать имена пользователей, которым понравился пост).

В качестве обходного пути я могу получить все сообщения пользователь любит делая:

var user = PFUser.currentUser() 
var relation = user.relationForKey("likes") 
relation.query().findObjectsInBackgroundWithBlock { 
    (objects: [AnyObject]!, error: NSError!) -> Void in 
    if error != nil { 
     // There was an error 
     println(error) 
    } else { 
     // objects has all the Posts the current user liked and do something. 
     println(objects)   
    } 
} 

Но это не то, что я после? Я использую Swift и Parse SDK, но с удовольствием отвечу в Obj C, и я переведу. Предложение Docs Parse неверно: https://www.parse.com/docs/ios_guide#objects-pointers/iOS Я мог бы хранить подобное против почты, а не пользователя, но это означало бы, что мне нужно будет открыть права доступа к сообщению, которое является no-no

ответ

0

Существует проблема с вашей структурой базы данных. Вы должны не просто иметь объекты User, но также должны иметь объекты Post. У Почты может быть подобное отношение, которое указывает на всех Пользователей, которым понравилась почта. Когда пользователю нравится сообщение, пользователь добавляется к отношениям «Посты». Таким образом, чтобы получить необходимую информацию, вам просто нужно посмотреть на отношение Почты.

Что вы имеете в виду об открытых правах доступа к публикации? Вы хотите, чтобы сообщение было прочитано только для всех пользователей, кроме Пользователя, который разместил его?

Или проблема с предоставлением доступа к объектам пользователя? Я не уверен, действительно ли это проблема, поскольку вы можете просто быстро рассчитывать на объекты User в отношении, не глядя на данные в объектах User. Вы можете создавать объекты Like, но я не думаю, что это необходимо.

+1

Моя структура базы данных в порядке, у меня есть объекты Post и объекты User. Проблема в том, что когда я выполняю отношение.query() в отношении object.relationForKey («нравится»), он возвращает null (предположительно потому, что Posts не нравится пользователям). Я следил за документами parse.com, но один из их руководств предлагает установить отношения, подобные отношениям в Post (то есть Post lovedBy User). Однако для этого я считаю, что все сообщения должны иметь открытый доступ для записи на запись, тогда как я хочу, чтобы они имели публичное чтение (за исключением пользователя, который его создал, конечно) – ExoticChimp

+0

, по существу, я успешно сохраняю отношения USER любит POST уже. Теперь я хочу, чтобы иметь возможность получить обратный, то есть все ПОЛЬЗОВАТЕЛИ, которым нравится этот POST – ExoticChimp

+1

. Я получаю эту проблему. Чтобы обновить отношение, похоже, вам нужен доступ на запись в сообщении. К сожалению, Parse не позволяет вам устанавливать доступ для чтения/записи по полю. Я действительно не думаю, что это имеет значение для доступа к Почте, но если вы так думаете, вы можете создать два разных типа объектов Post - Post и PostDetail. Post имеет указатель postDetail. Сообщение читается только за исключением плаката, но PostDetail можно писать всем. PostDetail содержит подобное отношение. –

Смежные вопросы