Backendless系のmBaaSアプリ(GMO mBaaSなど)からニフティクラウドmobile backendに切り替える方法(JavaScript版)


mBaaSとは

最近アプリ開発でサーバー機能を便利にするものmBaaSとしてよく聞いています。
簡単に言いますと、mBaaSとはスマートフォンアプリのバックエンド機能が開発不要になるクラウドサービス。海外だと有名なのはParse, Backendless..があります、国内だとニフティクラウドmobile backend, Appiariesありますよね。
開発が便利ですが、サーバーといった大事なところは他社に依存するのはリスクがありますね。最近うちのブログもこんな記事あります。
今回mBaaS使うの紹介ではなく、途中使って、切り替え(乗り換え)も簡単ですよと試したことを紹介します。今回対象はBackendlessからニフティクラウドmobile backendに切り替える方法を紹介します。

Backendlessとは

アメリカ会社が作ったmBaaSです。最近日本でGMO-mBaaSのベースになったものでもあります。無料から利用、機能も充実しています(分析、カスタムコードなど)

ニフティクラウドmobile backendとは

ニフティクラウドが提供する国産のmBaaSサービスです。高いスペックでプッシュ通知、データー管理など無料で使えます。日本語ドキュメントとサポートがあり!

Backendlessからニフティクラウドmobile backendに切り替える基本的なステップ

  • SDKをインポート
  • アプリ内、SDKを利用宣言
  • ニフティクラウドmobile backendでアプリ作成、キー(ApplicationKey, ClientKey)を取得
  • アプリ内で初期化
  • 実装コードを変更
  • その他:データー移行、設定変更

実際にやってみます!

前提

Javascriptでデーターストア機能を動いているアプリは以下になります(Quickstartのもの)

  • SDKファイル:libs/backendless.js
  • HTMLファイル: test.html
    <meta charset="utf-8">
    <title>
        javascript sdk
    </title>
    <script src="libs/backendless.js"></script>
    <script src="app.js"></script>
  • JavaScriptファイル:
var APPLICATION_ID = 'APPLICATION-ID',
    SECRET_KEY = 'SECRET-KEY',
    VERSION = 'v1'; //default application version;

Backendless.initApp(APPLICATION_ID, SECRET_KEY, VERSION);

var user = new Backendless.User();
user.email = "[email protected]";
user.password = "foo";
user.name = "Bob";

Backendless.UserService.register(user);

(1) ニフティクラウドmobile backendのSDKをインポート

こちらのSDKダウンロードページの通りに、GithubのリリースページにてSDK(ncmb.min.js)を取得し、/libs/にコピーします。

(2) アプリ内、SDKを利用宣言

HTMLファイルtest.htmlを変更

    <script src="libs/backendless.js"></script>

以下のように修正

    <script src="libs/ncmb.min.js"></script>

(3)ニフティクラウドmobile backendでアプリ作成、キー(ApplicationKey, ClientKey)を取得

ニフティクラウドmBaaSの画面でアプリ作成、アプリ名を設定し、アプリ作成完了すると、二つキー(ApplicationKey, ClientKey)が作成されます。

(4)アプリ内で初期化

以下のようにJavaScriptファイルapp.jsを修正します。

var APPLICATION_ID = 'APPLICATION-ID',
    SECRET_KEY = 'SECRET-KEY',
    VERSION = 'v1'; //default application version;

Backendless.initApp(APPLICATION_ID, SECRET_KEY, VERSION);

以下のように変更

var APPLICATION_KEY = 'YOUR-APPLICATION--KEY',
    CLIENT_KEY = 'YOUR-CLIENT-KEY'

var ncmb = new NCMB(APPLICATION_KEY, CLIENT_KEY);

(5)実装コードを変更

以下のようにJavaScriptファイルapp.jsを修正します。

var user = new Backendless.User();
user.email = "[email protected]";
user.password = "foo";
user.name = "Bob";

Backendless.UserService.register(user);

以下のように変更します

var user = new ncmb.User();
user.set("userName", "foo")
    .set("email", "[email protected]")
    .set("password", "foo");
// 新規登録
user.signUpByAccount()
    .then(function(){
      // 登録後処理
    })
    .catch(function(err){
      // エラー処理
    });

ここでの修正ですが、ニフティクラウドmobile backendの会員管理とbackendlessの会員管理は少し仕組みが違います。メールの登録は両方とも可能ですが、mobile backendの場合、メール登録リクエストを送信され、そこにアクセスするとパスワード設定し、本登録になるという仕様です。
上記のコードではパスワードを指定し、登録するという実装なので、userNameの設定も入れるようにします。
これで、試すと、ユーザーが登録されることを確認します。

その他:データー移行、設定変更など

ここに関しては難しいところかなと思いますので、知っている範囲で書いてみます。

  • backendlessではExport機能ありますが、CSV形式になります。
  • ニフティクラウドmobile backendではデーターストアの新規クラス作成する時、CSV、Json, txtどちらもインポートできますが、会員データーやinstallation(プッシュ通知配信端末)データーという既存のものであればできません。
  • アプリ設定はそれぞれ違うので、検討した方が良さそうです!