0

我需要实现一个共享的全局领域,用户可以在其中编写新记录并删除他们以前的记录,但不能删除其他用户记录。

例如,评论系统。

我使用基于查询的同步通过对象权限实现了它,但我不明白如何通过完全同步轻松实现它。

有人做过吗?你是怎么做到的?谢谢你。

4

2 回答 2

0

我正在考虑使用节点 js 服务器,当用户数据库中发生某些事情时更新全局数据库。

它是这样工作的(经过测试,我需要了解它是如何扩展的。

我为用户数据库使用了一个监听器,因此用户可以离线在他们的数据库中插入行,当他们重新上线时,节点 js 服务器可以复制全局数据库上的数据)。因此,在客户端上,我将在需要离线的类上拥有一个具有同步状态(本地、同步、已删除)的属性。

于 2020-01-05T10:01:30.787 回答
0

只要每个用户都有自己的 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 进行比较,以查看它们是否匹配。如果不是,则不允许删除。

于 2020-01-03T18:09:15.213 回答