WebAPI
mBaas
NCMB

ニフクラ mobile backend でユーザ検索を行うには

※ 本記事は JavaScript SDK ver.1 の内容になります。最新版で試される場合は こちら をご覧ください:point_up:


ニフクラ mobile backendはスマートフォンアプリ開発におけるサーバサイドの仕組みをまるっと提供する仕組みです。主立った機能としては以下があります。

  • プッシュ通知
  • ユーザ管理
  • データストア
  • ファイルストア

今回はその一つ、ユーザ管理の使い方です。ユーザコミュニティで質問があったのでサンプルコード含めて載せていきます。

会員の検索について · Issue #165 · NIFCloud-mbaas/UserCommunity

ユーザ登録を実装する

まずはユーザ登録システムを考えます。JavaScriptの場合、次のようなコードになります。なお、JavaScript SDKをWebアプリケーションで使う場合、アプリケーションキーとクライアントキーがソースコード中に書かれてしまうので取り扱いには十分注意してください(ローカルで試す程度にするなど)。

ユーザ名:<input type="text" id="username" value="" /><br />
パスワード:<input type="text" id="mailaddress" value="" /><br />
メールアドレス:<input type="password" id="password" value="" /><br />
<button>ユーザ作成</button>
<script>
  $(function() {
    NCMB.initialize("APPLICATION_KEY", "CLIENT_KEY");
    $("button").click(function(e) {
      e.preventDefault();   
      var user = new NCMB.User();
      user.set("userName", $("#username").val());
      user.set("password", $("#password").val());
      user.set("mailAddress", $("#mailaddress").val());
      user.signUp().then(function(e) {
        alert("ユーザ登録しました!");
      });
    });
  });
</script>

これだけのコードでユーザ管理システムが構築できます。

ユーザ検索を実装する

ただし上記のコードではユーザを検索しても何も出てきません。もしログインしている場合、自分のデータだけは返ってきます。権限管理によって閲覧権限が与えられていないからです。しかし友達を探したり、他のユーザとデータをシェアする際にはユーザ検索の機能が必須になります。例えばJavaScriptで実装した場合、次のようになります。

ユーザ名:<input type="text" id="username" value="" /><br />
メールアドレス:<input type="text" id="mailaddress" value="" /><br />
パスワード:<input type="password" id="password" value="" /><br />
<button>ユーザ作成</button>
<script>
  $(function() {
    NCMB.initialize("APPLICATION_KEY", "CLIENT_KEY");
    $("button").click(function(e) {
      e.preventDefault();   
      var user = new NCMB.User();
      user.set("userName", $("#username").val());
      user.set("password", $("#password").val());
      user.set("mailAddress", $("#mailaddress").val());
      user.setACL({"*": {"read": true}});    // 追加する
      user.signUp().then(function(e) {
        alert("ユーザ登録しました!");
      });
    });
  });
</script>

このようにsetACLで*(全体)に閲覧権限を与えることで、検索可能になります。ユーザ検索は次のように実装します。

var q = new NCMB.Query("user");
q.find().then(function(users) {
  // usersがユーザ一覧
});

usersというテーブル(ニフクラ mobile backend的にはクラス)を検索できるようになります。条件を追加(ユーザ名など)することも可能です。

例えばユーザ検索をサインアップ後に行う処理の場合、次のような動きになります。

そしてニフクラ mobile backendの管理画面にもデータが反映されます。


こんな感じでニフクラ mobile backendを使えばごくごく簡単にユーザ管理システムが構築できます。保存したデータのユーザごとの権限管理も簡単にできますので、ぜひご利用ください!

サーバー開発不要!アプリ開発をよりスマートに、スピーディに。 | ニフクラ mobile backend