我需要实现一个共享的全局领域,用户可以在其中编写新记录并删除他们以前的记录,但不能删除其他用户记录。
例如,评论系统。
我使用基于查询的同步通过对象权限实现了它,但我不明白如何通过完全同步轻松实现它。
有人做过吗?你是怎么做到的?谢谢你。
我需要实现一个共享的全局领域,用户可以在其中编写新记录并删除他们以前的记录,但不能删除其他用户记录。
例如,评论系统。
我使用基于查询的同步通过对象权限实现了它,但我不明白如何通过完全同步轻松实现它。
有人做过吗?你是怎么做到的?谢谢你。
我正在考虑使用节点 js 服务器,当用户数据库中发生某些事情时更新全局数据库。
它是这样工作的(经过测试,我需要了解它是如何扩展的。
我为用户数据库使用了一个监听器,因此用户可以离线在他们的数据库中插入行,当他们重新上线时,节点 js 服务器可以复制全局数据库上的数据)。因此,在客户端上,我将在需要离线的类上拥有一个具有同步状态(本地、同步、已删除)的属性。
只要每个用户都有自己的 Realm,您就可以获得相同的功能。可以将完全同步领域的权限提供给其他用户,以允许他们对用户领域进行读/写访问。
请参阅既定课程权限
您需要将您的全球领域分解为单独的领域,但这是一种选择。
如果您将所有用户数据存储在一个全局领域。这将更具挑战性,因为您无法细粒度地控制其他用户正在做什么。
但是,您可以在应用程序中实现控制谁可以/不能使用对象的逻辑。例如,一个 ToDo 对象可能有一个“created_by_user_id”属性
class ToDoClass: Object {
@obc dynamic var to_do_id = ""
@obc dynamic var created_by_uid = ""
override static func primaryKey() -> String? {
return "to_do_id"
}
}
并且使用应用程序逻辑,当另一个用户去删除该用户的 ToDo 时,它可以将 created_by_uid 属性与当前用户 id 进行比较,以查看它们是否匹配。如果不是,则不允许删除。