私の目標はかなり簡単です。私はプライベートRealmObjects
を共有Realm
に作成する必要があります。共有レルム内でプライベートレルムオブジェクトを作成する方法
私はすでにオブジェクトを作成して共有realm
に保存しました。私は、ユーザーに個人的にオブジェクトを保存する能力を与えたいと思います。私が知る限り、私はこれを達成する2つの方法がありますが、どちらも働いていません。
SOLUTION 1:Users
シェアレルムは、次のサンプルのようにお互いにオブジェクトを許可する権限を使用して:
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
にvisibileです。
SOLUTION 2:必要に応じて共通のプライベートSyncUser
への切り替え、彼のプライベートなアイテムを収集するために、各登録されたユーザーの公開アイテムやプライベートSyncUser
を表示/保存するために「共通」SyncUser
を作成します。とにかく私にとっては非常に非効率的です。どのようにあなたに響くのですか?私はそれをすることができる別の方法があると思いますか?
「共有レルム内にプライベートレルムオブジェクトを作成する必要があります」 プライベートではどういう意味ですか?他のユーザーがアクセスしないように非公開にするか、またはこのユーザー専用の秘密にするか、 「個人」オブジェクトにUUIDを追加することができます。そのため、ユーザーごとに照会することができます。オブジェクトをまったく表示したくない場合は、ユーザーごとに別のレルムを作成する必要がありますこれは、スキーマを部分的に共有することができないためです。 –
プライベートの場合は、サーバーに格納されているが作成者ユーザーだけにアクセスできるレルムオブジェクトを意味します。 他のユーザーが許可されていないオブジェクトにアクセスできるため、UUIDの使用は安全ではありません。 –
アクセス許可APIはレルム全体に適用されるためいくつかのオブジェクトを非公開にする必要がある場合は、ユーザーに依存するエンドポイント(例: 'http:// server /〜/ Private')を使用して、彼のRealm「Private」を参照してください。この方法で、一度「Shared」と「Private」の2つのRealmsになります –