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