ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

NCMBでフォロー/フォロワー機能を作る(その1:仕様について)

f:id:mbaasdevrel:20210705184019p:plain

最近、NCMBを使ってユーザ同士がコミュニケーションできる仕組みを構築したいというニーズが出てきています。メッセージングアプリだけでなく、ゲームやフリマ、フォーラムアプリなど、多くのアプリでフォロー/フォロワーの仕組みが利用されます。

今回はコミュニケーション機能の基盤になるであろう、フォロー/フォロワー機能の実装を真剣に検討してみたので、その実装について解説します。まず初回となる今回は、データストアのスキーマについて解説します。 ※本編ではMonacaにて実装を行いますが、今回の記事の内容は言語を問いません。

利用するクラスについて

今回利用するクラスは全部で3つです。

クラス名 役割
User 認証用
Profile 一般公開情報。フォロー、フォロワー数の合計も入ります。
Follow フォロー、フォロワーに関する情報が入ります。

f:id:mbaasdevrel:20210705184019p:plain

アクセス権限について

クラスに対するアクセス権限は次のようになっています。

  • User
    閲覧、更新ともに本人のみ
  • Profile
    閲覧は誰でも可能。更新は本人、またはAdminグループのユーザのみ
  • Follow
    閲覧は誰でも可能。更新は本人、またはAdminグループのユーザのみ

注意したこと

Userクラスにはメールアドレスが入るので、誰でも読み込み可能とするのは本番アプリでは良くありません。簡易的なデモや、企業内での利用など限られた利用者の中では問題ありませんが、広く一般公開されたアプリであればUserクラスは公開しない方が良いでしょう。

そこでProfileクラスを用意し、そこに公開用情報を入れています。また、Profileクラスにはフォロー、フォロワー数の合計数も入れています。毎回全データを取得するとデータ量が多くなるため、一覧表示ではProfileだけ表示すれば良い状態としています。

Followクラスは実際のフォロー、フォロワーのobjectIdが入ります。これはProfileのobjectIdになります。Followクラスも自分のデータは更新できますが、他のユーザの情報は修正できません。そこでフォローを行った際には、NCMBのスクリプト機能を通じてフォローされたユーザの情報を変更します。

初期データの作成

新規登録した際にはProfile/Followクラスに対してデータを作成します。つまりUser - Profile - Followはそれぞれ1対1対1の関係性になっています。

まとめ

今回のフォロー/フォロワー機能は、様々なアプリで利用できる機能になるでしょう。次回以降、複数のSDKで実装する例を解説していきます。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。