2017-03-03 19 views
1

管理者が特定のグループの人々にメッセージを送信できるようにするメッセージボードアプリケーションを開発中です。人々は複数のグループに登録することができます。構造化グループのメッセージfirebase

自分が購読しているグループのメッセージをすべて表示するユーザーのリストが必要です。私は、次の構造を作っ:

{ 
    "placeMessages": { 
     "<place-push-key>": { 
      "message-push-key": { 
       "user_id": "<user-push-key>", 
       "place_id": "<place-push-key>", 
       "subject": "" 
       "message": "" 
       "date": "<date>" 
      } 
     } 
    }, 
    "userMessages": { 
     "<user-push-key>": { 
      "message-push-key": { 
      } 
     } 
    } 
} 

をしかし、問題は、管理者がメッセージを送信すると、メッセージがそのグループに加入しているすべてのユーザーに追加する必要があるということです。これは、10.000メッセージのアトミック書き込みアクションを意味する可能性があります。私はこれが非常に遅いと思う、この問題を解決する方法はありますか?

答えて

0

私は次のJSONがあなたの問題を解決する方法について考えていると思います。

{ 
    "groups": [{ 
     "groupId": "001", 
     "messages": [{ 
      "messageId": "001_1001", 
      "subject": "" 
      "message": "" 
      "date": "<date>" 
     }, { 
      "messageId": "001_1002", 
      "subject": "" 
      "message": "" 
      "date": "<date>" 
     }] 
    }, { 
     "groupId": "002", 
     "messages": [{ 
      "messageId": "002_1001", 
      "subject": "" 
      "message": "" 
      "date": "<date>" 
     }, { 
      "messageId": "002_1002", 
      "subject": "" 
      "message": "" 
      "date": "<date>" 
     }] 
    }], 

    "users": [{ 
     "userId": 10001, 
     "subscribedGroups": ["001", "002"] 
    }, { 
     "userId": 100012, 
     "subscribedGroups": ["001"] 
    }, { 
     "userId": 100013, 
     "subscribedGroups": ["002"] 
    }] 
} 

注:これは実際の問題解決の方法ではありません。私は一般化された方法で問題を解決しています。

関連する問題