使用权限在Realm Object Server上创建新用户的域的正确方法

时间:2017-05-10 21:02:26

标签: java android realm realm-mobile-platform realm-object-server

我正在尝试使用Realm Mobile Platform来确定它是否适合即将推出的项目。

我正在使用服务器管理员用户登录我的示例应用程序,并通过在SyncConfiguration对象中提供不同的路径,我可以在本地和对象服务器中创建不同的域。

    String realmUrl = String.format("realm://%1$s:%2$s/my_realm_name", OBJECT_SERVER_IP, BASE_PORT);
    SyncConfiguration syncConfiguration = new SyncConfiguration.Builder(SyncUser.currentUser(), realmUrl).build();
    Realm realm = Realm.getInstance(syncConfiguration);

问题在于,当我访问Web仪表板时,管理员似乎并不拥有他使用客户端应用程序创建的领域。
所以我的问题是:用户创建N拥有的Realms的最佳方式是什么,可以通过管理访问权限与其他用户共享?

1 个答案:

答案 0 :(得分:2)

首次打开Realm文件时,SDK将向Realm Object Server的身份验证服务请求访问令牌。这将查找此路径中的文件是否已存在,如果不存在则创建该文件。在那里创建的文件只有在当前用户范围内时才会被拥有。实现这一目标的最简单方法是用户自己创建文件。

as user ID "userA":
  /~/my_realm_name     => /userA/my_realm_name => owned
  /userA/my_realm_name => /userA/my_realm_name => owned
  /userB/my_realm_name => fails (no permissions)
  /my_realm_name       => fails (no permissions)

as user ID "admin" with administrator privileges:
  /~/my_realm_name     => /admin/my_realm_name => owned
  /userA/my_realm_name => /userA/my_realm_name => unowned
  /userB/my_realm_name => /userA/my_realm_name => unowned
  /my_realm_name       => /my_realm_name       => unowned