我的目标非常简单:我需要在共享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
。无论如何,对我而言似乎效率很低。听起来对你来说怎么样?你觉得我还有另一种方法吗?
答案 0 :(得分:1)
您无法使用Realm的身份验证机制为单个域提供不同帐户的不同登录权限。
正如Nabil所说,您可以通过将UUID分配给用户,然后仅为每个用户查询它们来以编程方式控制访问。