Posted at

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

More than 3 years have passed since last update.


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 = "foo@foo.com";
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 = "foo@foo.com";
user.password = "foo";
user.name = "Bob";

Backendless.UserService.register(user);

以下のように変更します

var user = new ncmb.User();

user.set("userName", "foo")
.set("email", "foo@foo.com")
.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(プッシュ通知配信端末)データーという既存のものであればできません。

  • アプリ設定はそれぞれ違うので、検討した方が良さそうです!