如何在共享领域中创建私有RealmObject

时间:2017-04-07 14:34:30

标签: android realm realm-mobile-platform

我的目标非常简单:我需要在共享RealmObjects中创建私人Realm

我已经创建了对象并将它们存储在共享的realm中。我想让用户私下存储他们的对象。据我所知,我有两种方法可以实现这一目标,但没有一种方法可以实现。

解决方案1:使用权限让Users彼此共享Realm对象,如下例所示:

public static void setActiveUser(final SyncUser user) {
        if (user.isValid()) {
            SyncConfiguration defaultConfig = new SyncConfiguration.Builder(user, Colombo.SERVER_URL).build();
            Realm.setDefaultConfiguration(defaultConfig);
            Realm realm = user.getManagementRealm();
            realm.executeTransaction(new Realm.Transaction() {
                @Override
                public void execute(Realm realm) {
                    String includeAll = "*";
                        change = new PermissionChange(includeAll, includeAll, true, true, false);
                        realm.insert(change);
                }
            });
        }
    }

不幸的是,这不起作用,同步的Realms仅对当前的SyncUser可见。

解决方案2:创建一个" common" SyncUser为每个注册用户保存/显示公共项目和私有SyncUser以收集他的私人项目,根据需要从公共项目切换到私有SyncUser。无论如何,对我而言似乎效率很低。听起来对你来说怎么样?你觉得我还有另一种方法吗?

1 个答案:

答案 0 :(得分:1)

您无法使用Realm的身份验证机制为单个域提供不同帐户的不同登录权限。

正如Nabil所说,您可以通过将UUID分配给用户,然后仅为每个用户查询它们来以编程方式控制访问。