DataStoreの特定のレコードのsetコマンドのみを監視したい

29 views
Skip to first unread message

Souichi Saitou

unread,
Jun 15, 2015, 3:18:59 AM6/15/15
to mlk...@googlegroups.com
現在、DataStoreの特定レコードの更新を監視するやり方がわからず以下のようにしています。

hogeDataStore.on("set", function(data) {
  // 処理対象のIDじゃなければ処理をスキップする
  if (data.value.id != currentId)
    return;

  // なんらかの処理
});

これだとhogeDataStore全てのsetコマンドをリッスンしてしまう形となってしまい効率が悪いです。
例えばですが、以下のような感じで特定のレコードIDのsetコマンドのみを監視できるようになれるとうれしいです。

hogeDataStore.on(currentId, "set", function(data) {
  // なんらかの処理
}

的外れな質問でしたら大変申し訳ないのですが、
ご教示頂けると幸いです。

部谷修平

unread,
Jun 16, 2015, 10:18:49 PM6/16/15
to mlk...@googlegroups.com
Souichi Saitou

開発の部谷です。

投稿ありがとうございます!

確かに現状、データストア内の一つのデータの変更だけ監視することは出来ません。

現状監視できるのは、データストアの単位で行うことになります。
すこし実装が変わってしまうのですが、一つのクライアントがデータストア内の一つのデータの変更しか見ないのであれば、以下のように、データストアを切り分けてします。というのはいかがでしょうか。


クライアント1
milkcocoa.dataStore("rootdatastore").child("datastore1").on("set", function() {
});


クライアント2
milkcocoa.dataStore("rootdatastore").child("datastore2").on("set", function() {
});


別のクライアント
//クライアント1に変更を通知
milkcocoa
.dataStore("rootdatastore").child("datastore2").set({});
//クライアント2に変更を通知
milkcocoa
.dataStore("rootdatastore").child("datastore2").set({});


よろしくお願い致します。


Souichi Saitou

unread,
Jun 17, 2015, 1:20:27 AM6/17/15
to mlk...@googlegroups.com
ご回答ありがとうございます。

現状はそういった機構はないとのことですね。
ご提示頂いた形で解決できそうなので参考にさせて頂きます。

ありがとうございました。
Reply all
Reply to author
Forward
0 new messages