【发布时间】:2017-05-11 08:17:28
【问题描述】:
我有一个关于用户访问其他用户创建的数据的问题。我将在下面通过案例研究进行解释。
我正在使用 Realm 移动平台。该应用程序使用 Realm Auth 允许用户通过电子邮件、谷歌和 Facebook 帐户进行注册。目前我使用的是 REALM_URL: ...":9080/~/name"。
我将尝试通过以下示例解释我想要实现的目标。 想象我有 UserA 和 UserB。一旦用户在应用程序中注册(使用 SyncUser),他们将被重定向到项目活动。每个用户都可以创建自己的项目。在Realm Mobile Platform(Realm Mobile Database)之前,用户数据存储在用户设备中。现在,因为我在 REALM_URL 中使用了“~”,所以当用户进入项目活动时,活动会请求并显示该用户的所有现有项目。
该应用还有另一个带有搜索功能的活动,用户可以在其中搜索公共项目。例如,UserA 公开 Project1。 UserB 应该能够找到 Project1 并关注它,或者要求所有者成为贡献者。一旦 UserB 作为贡献者关注或获得访问权限,Project1 应显示在 UserB 的项目活动中。
问题是如何使这成为可能。
选项 A:为所有用户使用唯一且通用的领域。 从 REALM_URL 中删除“~”并将不同的字段(如“ownerID”)添加到项目 RealmObject,并将订阅项目列表添加到用户 RealmObject。这将允许用户查询项目活动中的所有项目(拥有和订阅)并在搜索活动中搜索公共项目。
选项 B:使用两个领域,一个用于用户数据的私有领域,一个用于项目的公共领域。 私有将有一个 REALM_URL 包括“~”,而公共将是绝对的。稍后,当新用户注册时,应用程序将通过访问控制授予权限(mayRead、mayWrite、mayManage)。
哪一个是更好的选择?还有其他更好的选择吗? 谢谢
【问题讨论】: