14. マルチテナント¶
マルチテナント機能を使用すると、複数のテナント/アプリに同時に接続することができます。
マルチテナント機能を使用する場合は、接続するテナント/アプリ毎に NebulaService インスタンスを生成する必要があります。 以下に例を示します。
// NebulaService インスタンスの生成
var service1 = Nebula; // Nebula 自身も NebulaService の1種 (デフォルトテナント)
var service2 = new Nebula.NebulaService();
// 初期化
service1.initialize({tenant:"...", appId:"...", appKey:"...", baseUri:"..."});
service2.initialize({tenant:"...", appId:"...", appKey:"...", baseUri:"..."});
以降は、Nebula クラスは使用せず、各 NebulaService のプロパティを使用するようにしてください。 以下に例を示します。
// service1 にログインする
service1.User.login({email: "...", password: "..."}).then(...);
// service2 のオブジェクトストレージに書き込む
var bucket = new service2.ObjectBucket("bucket1");
bucket.save({...}).then(...);
注意
ブラウザの localStorage 機能を使用できる環境でマルチテナント機能を使用する場合、 生成する NebulaService 毎に ユニーク な ID が必要となります。 本 ID は localStorage にデータを保存する際の key 情報に利用されます。 以下のように初期化パラメータで "serviceId" 設定してください。
var NebulaConfig = {
"tenant": "53c379dc4b54a455b6777730",
"appId": "53c379fa4b54a455b6777734",
"appKey": "ZmoFlxp3Klr11GZbyV11UsroMsAgMWyxncEHKuLJ",
"baseUri": "https://api.example.com/api",
"offline" : false,
"debugMode": "release",
"serviceId": "service_001" // この行を追加。 必ず生成する NebulaService 毎に異なる ID とすること
};
Nebula.initialize(NebulaConfig);