クラウドデータベース
「ニフティクラウド mobile backend」について
Monaca から簡単に使えるクラウドデータベースとして「ニフティクラウド mobile backend」というサービスがあります。このサービスは「mobile backend as a Service」の頭文字をとって mBaaS と呼ばれるジャンルに属するクラウドサービスで、データベース機能である「データストア」をはじめとして「プッシュ通知」「会員管理」「ファイルストア」「スクリプト」といった、スマホアプリのバックエンド機能を一連でそろえているサービスです。これらの機能はすべて JavaScript SDK を提供しているため、Monaca 環境からも簡単に使え、データの保存・取得・条件検索といったデータベースの操作も簡単に行えます。
今回の記事では以下のサンプルプロジェクトを元に Monaca から mBaaS のクラウドデータベース「データストア」を使う方法をご紹介します。
▼サンプルプロジェクト
Monacaとクラウドデータベースを連携してみよう!
mBaaSとMonacaを連携させるには?
押さえておくべきポイント
mBaaS を使って Monaca からデータの保存・取得・条件検索を行うために事前準備として2つの設定を行う必要があります。
設定の1つ目は、SDK のインストールです。mBaaS では、iOS/Android/JavaScript/Unity の4種類 SDK を提供しています。Monaca で
mBaaS を利用するためには、JavaScript SDK をインストールします。
設定の2つ目は、API キーを使った SDK の初期化です。APIキーは、アプリケーションキーとクライアントキーの2種類からなるもので Monaca と mBaaS 間でアクセスの認証を行う際に必要なものです。初期化は下記のコードを書きます。
//APIキーの設定とSDKの初期化
var appKey = "アプリケーションキー";
var clientKey = "クライアントキー";
var ncmb = new NCMB(appKey,clientKey);
アプリケーションキーとクライアントキーは mBaaS でアプリ作成時に発行された API キーに置き換えます。以上の2点によって、mBaaS と Monaca の連携は完了となります。
▼参考
SDKのインストール手順
mBaaSとMonacaの連携手順
データの保存・取得・条件検索の実装例
ここからは、データの保存・取得・条件検索についてコード実装例とあわせてご紹介します。
(1)データの保存
データの保存は下記のようなコードで行います。
//保存先クラスの作成
var SaveData = ncmb.DataStore("SaveData");
//インスタンスの生成
var saveData = new SaveData();
//データの保存
saveData.set("username", username)
.set("mailaddress", mailaddress)
.set("prefecture", prefecture)
.set("age", ageint)
.set("title", title)
.set("comment", comment)
.save()
.then(function(results){
//保存に成功した場合の処理
})
.catch(function(error){
//保存に失敗した場合の処理
});
まず、データの保存先クラスとして SaveData をコード2行目のように定義することで、mBaaS のデータストアに SaveData というクラスが出来ます。次に、SaveData クラスにデータを保存するためのインスタンス saveData を作成したら、このインスタンスに .set() で保存したいフィールドとデータを引数として設定します。最後に、.save() でデータストアへの保存を実行します。
クラス:mBaaS のデータストアにおけるテーブル
フィールド:mBaaSのデータストアにおけるカラム
(2)データの取得
データの取得は下記のように実装します。
//インスタンスの生成
var saveData = ncmb.DataStore("SaveData");
//データを降順で取得する
saveData.order("createDate",true)
.fetchAll()
.then(function(results){
//全件検索に成功した場合の処理
})
.catch(function(error){
//全件検索に失敗した場合の処理
});
上記の例では、コード2行目でデータを取得するクラスを指定しています。 .order() メソッドでは取得するデータをどのように並び替えるかを指定するメソッドです。第一引数に「フィールド」を指定する”文字列”、第二引数に「降順か昇順か」を指定する”真偽値”を指定します。今回の場合であれば、「createDate」フィールドを「降順」に並び替えるようにしています。
.fetchAll()メソッドを続けることで、並び替えされたデータの取得が実行されます。
(3)データの条件検索
データの検索について実装は下記のように行いますが、中でも特に重要な2つのメソッドを紹介します。
- .lessThanOrEqualTo()
- .greaterThanOrEqualTo()
//インスタンスの生成
var saveData = ncmb.DataStore("SaveData");
//指定日以前に登録されたデータを取得する
saveData.lessThanOrEqualTo("createDate", { "__type": "Date", "iso": date.toISOString() })
.order("createDate",true)
.fetchAll()
.then(function(results){
//検索に成功した場合の処理
})
.catch(function(error){
//検索に失敗した場合の処理
});
.lessThanOrEqualTo() は、入力した値以下のオブジェクトを検索するメソッドです。ここでは、引数に createDate と { "__type": "Date", "iso": date.toISOString() } を設定することで、入力した日付よりも以前に登録されたデータを検索できるようになっています。
.lessThanOrEqualTo() のかわりに .greaterThanOrEqualTo() を指定すると、入力した日付よりも以後に登録されたデータを検索できるようになります。
この後に .order() と .fetchAll() を続けることで、並び替えと条件に合致するデータの全件取得を行います。
まとめ
mBaaS と Monaca を連携させることで、データの保存や検索といった機能もたった数行程度のコードでアプリに導入することが可能です。
▼サンプルプロジェクト
Monacaとクラウドデータベースを連携してみよう!
mBaaS のデータストアを使って導入できる機能はまだまだ他にもありますので、機能を組み合わせてアプリ開発に役立ててみてください。また、お悩みの際には是非mBaaSの「サンプルとチュートリアル」もチェックしてみましょう!
サンプルとチュートリアルのご紹介
mBaaS ではデータストアに関連したサンプルとチュートリアルを多数ご用意しております!データストアの様々な活用方法を紹介しているので、アプリ開発のご参考にしてみてください。