2017-05-11 18 views
1

他のユーザーが作成したデータにアクセスするユーザーについて質問があります。私は事例研究で以下で説明します。Realm Mobile Platformを使用してアプリユーザー間でデータを共有する

私はRealm Mobile Platformを使用しています。アプリはレルム認証を使用して、ユーザーが電子メール、Google、およびFacebookアカウントで登録できるようにします。この時点で私はREALM_URLとして使用しています:... ":9080 /〜/ name"。

以下の例で私が達成したいことを説明しようとします。 私がUserAとUserBを持っているイメージング。ユーザが(SyncUserを使用して)アプリに登録すると、プロジェクトアクティビティにリダイレクトされます。各ユーザーはそれぞれのプロジェクトを作成することができます。 Realm Mobile Platform(Realm Mobile Database)の前に、ユーザーデータがユーザーデバイスに格納されていました。現在、REALM_URLで「〜」を使用しているため、ユーザーがプロジェクトアクティビティに入力すると、アクティビティがリクエストし、そのユーザーのすべての既存プロジェクトを表示します。

このアプリには、ユーザーが公開プロジェクトを検索できる検索機能があります。たとえば、UserAはProject1を公開します。 UserBはProject1を見つけてそれに従うか、所有者に寄稿者になるよう依頼する必要があります。 UserBが寄稿者としてアクセスしたりアクセス権を取得したりすると、Project1はUserBのProjectアクティビティに表示されます。

これを可能にする方法が問題です。

オプションA:すべてのユーザーに固有の共通のレルムを使用します。 REALM_URLから "〜"を削除し、 "ownerID"のような異なるフィールドをプロジェクトRealmObjectに追加し、ユーザーRealmObjectの購読プロジェクトのリストを追加します。これにより、ユーザーは、プロジェクト活動内のすべてのプロジェクト(所有および購読)に対して検索を行い、検索アクティビティで公開プロジェクトを検索することができます。

オプションB:2つのレルムを使用します.1つはユーザーデータ用、もう1つはプロジェクト用です。 プライベートには「〜」を含むREALM_URLがあり、パブリックは絶対になります。その後、新しいユーザーがサインアップすると、アクセスコントロールを介してアプリケーションにアクセス権(mayRead、mayWrite、mayManage)が付与されます。

どれが良い選択肢ですか?他に良いオプションはありますか? ありがとう

答えて

1

あなたの質問に対する回答は、それに依存します。 Realm Mobile Platform(RMP)は、すべてのデータ共有、競合解決、およびユーザー間の同期を自動的に処理します。このようにして、RMPはサーバーと真実の単一のソースとして機能します。

OptionAとOptionBの両方で、この単一の情報源とユーザーアクセス制御の知識が必要です。

各オプションの賛否両論を見て行きましょう。

OptionA:

  • 賛否
    • 唯一のデータベースは、紛争解決がモバイル側のレルム
    • 大幅に少ない作業で行われ、あなただけの サーバー
    • に耳を傾けます
  • 短所
    • 潜在的ユーザーのアクセス制御を行うことが困難

OptionB:

  • 賛否
    • ユーザーの個人データが
  • 完全に分離されの
  • 短所
    • あなたは、ローカル・データベースおよびサーバー
    • アプリは、最も可能性が高いため、複数のデータベースを格納することに大きくなるだろうとの間でデータの紛争解決を作成するための責任を負うことになります。データベースの競合解決を扱う私の経験で

、自分は本当に痛いです。 OptionAの方がはるかに優れているようです。

関連する問題