Realm Database Full Sync——如何实现全局评论系统

Realm Database Full Sync - How to implement a global comment system

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

例如评论系统。

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

有人做过吗?你是如何做到的?谢谢。

只要每个用户都有自己的领域,您就可以获得相同的功能。可以向其他用户提供完全同步领域的权限,以允许他们read/write 访问用户领域。

Offering Permissions

您需要将您的全球领域分解为单独的领域,但这是一种选择。

如果您将所有用户数据存储在一个全球领域。这将更具挑战性,因为您无法精细控制其他用户的行为。

但是,您可以在应用程序中实施控制谁 can/cannot 使用对象的逻辑。因此,例如,一个 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 进行比较,以查看它们是否匹配。如果不是,则不允许删除。

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

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

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