我正在使用Parse作为后端为iOS创建一个消息传递应用程序,并且试图提出用于存储消息/讨论的架构。存储消息很简单,但是人们如何存储讨论,因为讨论涉及具有一个或多个用户的一组消息,并且可以整体删除。这仅仅是对消息类的聪明查询,还是对整个类的查询?
Messages类和使用Parse的讨论的典型架构是什么样的?
在此先感谢您的帮助!
PS。任何人都可以推荐任何非常好的第三方库来制作类似于Facebook Messenger的消息传递屏幕。
最佳答案
如果您使用Parse作为后端,那么最适合您的功能就是PFRelation。对于_User对象,您可以具有PFRelation类型的属性,并具有“讨论”的目标类(您的自定义类,您可以调用任何您想要的类)。一个Dicussions对象本身内部可能会具有带有某种数组的属性,参与该讨论的人员仅带有其objectIds(也许是“参与者”)。还有另一个保存消息“数组”的属性(从技术上讲,这是PFRelation属性,但是如果文档会告诉您,从技术上讲,这不是数组)。因此,要查询用户所属的讨论,您可以对“讨论”对象类进行查询,其中key:@“partcipants” equalTo:[PFUser currentUser] .objectId
一个重要的注意事项是,您可以轻松地从PFRelation属性中删除/添加对象,但尚未获取这些对象,并且必须首先获取PFRelation中的项目才能访问它们。 (如果转到文档,您将看到此信息。)因此,在对对象进行实际查询之前,必须先在PFRelation中获取对象。
用户数组只能包含其objectId的原因是为了避免花费时间来实际获取PFRelation中的对象。请记住,在查询数组属性时,whereKey:equalTo:方法将检查equalTo:旁边的对象是否包含在array属性中。
最后,您可以拥有一个“messages” PFRelation属性,该属性在被访问时将带您到提交给某个讨论对象的Message对象。
去查找PFRelations,它们是您的 friend ,是通过直接查询解决您的问题的一种方式。
关于ios - 使用Parse在Messaging App中存储消息和讨论,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24345127/