OGeek|极客世界-中国程序员成长平台

标题: ios - 使用 Parse 在消息应用程序中存储消息和讨论 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 10:30
标题: ios - 使用 Parse 在消息应用程序中存储消息和讨论

我正在使用 Parse 作为后端为 iOS 创建一个消息传递应用程序,并且我正在尝试提出用于存储消息/讨论的架构。存储消息是直截了当的,但人们是如何存储讨论的,因为讨论涉及一组具有一个或多个用户的消息,并且可以作为一个整体被删除。这只是对消息类的巧妙查询,还是整个类本身?

使用 Parse 的 Messages 类和 Discussions 的典型架构是什么样的?

提前感谢您的帮助!

PS。谁能推荐任何非常好的第三方库来制作类似于 Facebook Messenger 的消息屏幕。



Best Answer-推荐答案


如果您使用 Parse 作为后端,那么最适合您的功能是 PFRelation。对于您的 _User 对象,您可以拥有 PFRelation 类型的属性,目标类为 Discussions(您的自定义类,您可以随意调用)。一个 Dicussions 对象本身可能有一个带有某种数组的属性,参与该讨论的人,只有他们的 objectIds(可能是“参与者”)。还有另一个包含消息“数组”的属性(从技术上讲,这将是一个 PFRelation 属性,但如果文档让您知道,这在技术上不是一个数组)。因此,要查询用户参与的讨论,您可以查询 Discussions 对象类,其中 Key"partcipants"equalTo:[PFUser currentUser].objectId

重要的一点是,您可以轻松地从 PFRelation 属性中删除/添加对象,但这些对象尚未获取,您必须首先获取 PFRelation 中的项目才能访问它们。 (如果您转到文档,您会看到这一点)因此,您必须先在 PFRelation 中获取对象,然后再对它们进行实际查询。

您的用户数组可以只包含他们的 objectIds 的原因是为了避免实际获取 PFRelation 中的对象所需的时间。请记住,在查询数组属性时, whereKey:equalTo: 方法会检查 equalTo: 旁边的对象是否包含在数组属性中。

最后,您可以拥有一个“messages”PFRelation 属性,当您访问该属性时,该属性会将您带到您提交给某个 Discussion 对象的 Message 对象。

去查找 PFRelations,它们是您的 friend ,是一种通过直接查询来解决您的问题的方法。

关于ios - 使用 Parse 在消息应用程序中存储消息和讨论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24345127/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4