0

Xamarinの最新クライアントSDKでROS 2.0を使用しています。私のアプリでは、ユーザーはいくつかのオブジェクトを持っています(それぞれ別々のレルムで表されています)。ユーザーはDataStores(領域)を作成および削除できます。作成は正常に動作しますが、Realm.DeleteRealm(someDataStore.Realm.Config);を呼び出すとサーバー上のレルムファイルは削除されません。XamarinクライアントSDKからROSの.realmファイルを削除する

私は呼び出すことによってそれを削除しようとする前に、レルムを配置しています:

someDataStore.Realm.Dispose(); 
Realm.DeleteRealm(someDataStore.Realm.Config); 

しかし、それはROSにまだそこにあります。レルムスタジオはレルムファイルの削除をサポートしていないので、未使用のレルムをクリアする方法はROSからですか?

答えて

1

あなたはそうです - 設計上、Realm.DeleteRealmメソッドはローカルレルムだけを削除し、リモートレルムは削除しません。あなたは、リモート・レルムを削除する必要が絶対的に一定であれば、あなたはそうするROSのREST APIを使用することができます。

  • %REALM-PATH%は、レルムファイルのURLエンコードされた仮想パスです
    wget --method DELETE --header 'Authorization: %ADMIN-TOKEN%' http://%ROS-URL%/realms/files/%REALM-PATH% 
    

    あなたは削除したい、例えば/some-user-id/myrealmsome-user-id%2Fmyrealmになります。

  • %ADMIN-TOKEN%は、%PATH-TO-ROS%/data/keys/admin.jsonにあります。
  • %ROS-URL%は、明らかにあなたのROSインスタンスのURLです。

リモートファイルを削除すると、同期しているすべてのアプリケーションからローカルコピーも削除する必要があります。そうしないと、エラーが発生します(つまり、ローカルコピーは、削除されたリモートのものと自分自身を同期させる)。

関連する問題