我正在使用Parse作为后端为iOS创建一个消息传递应用程序,我正在尝试提供用于存储消息/讨论的模式。存储消息是直截了当的,但人们如何存储讨论,因为讨论涉及一组具有一个或多个用户的消息,并且可以作为整体删除。这只是一个聪明的查询消息类,还是整个类本身?
使用Parse的Messages类和Discussions的典型架构是什么样的?
提前感谢您的帮助!
PS。任何人都可以推荐任何非常好的第三方库来制作类似于Facebook Messenger的消息传递屏幕。
答案 0 :(得分:2)
如果你使用Parse作为后端,那么最好的功能就是PFRelation。对于您的_User对象,您可以拥有PFRelation类型的属性,其目标类为Discussions(您的自定义类,您可以随意调用它)。一个Dicussions对象本身可能有一个属性的数组,参与讨论的人只有他们的objectIds("参与者"也许)。另一个拥有"阵列的属性"消息(这在技术上是PFRelation属性,但如果文档会让你知道,这在技术上不是一个数组)。因此,要查询用户所参与的讨论,您可以在Discussions对象类上进行查询,其中Key:@" partcipants" equalTo:[PFUser currentUser] .objectId
一个重要的注意事项是,您可以轻松地从PFRelation属性中删除/添加对象,但这些对象尚未被提取,您必须首先获取PFRelation中的项目才能访问它们。 (如果你去看文档,你会看到这个)因为这个原因你必须在对它们进行实际查询之前在PFRelation中获取对象。
您的用户数组可以只包含其objectIds的原因是为了避免在PFRelation中实际获取对象所需的时间。请记住,在查询数组属性时,whereKey:equalTo:方法检查equalTo:旁边的对象是否包含在数组属性中。
最后,你可以收到一条"消息"访问PFRelation属性时会将您带到提交给某个Discussion对象的Message对象。
查看PFRelations,他们是您的朋友,并且是通过直接查询解决问题的方法。
答案 1 :(得分:0)