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);