2016-03-25 6 views
0

を公開サーバと同じドキュメントを取得し、この流星のコードが実行されている間、削除され、別のユーザーIDが2つの異なるブラウザのコンソールMeteor.userId();
に確認されているが、文字列はのinputTextで入力されたときそれらのうちの1つとcollection.insertが実行され、もう1つは同じ文字列を示します。
this.userIdは、サーバーが異なるクライアントのそれぞれに属する文書だけを同時に公開するのに十分なものであると考えました。異なるuseridはautopublishパッケージにthis.userId

なぜこのようなことが起こり、修正するのですか?おかげ

サーバー

Meteor.publish('displayCol', function() { 
    return DisplayCol.find({userId: this.userId}); 
}); 
DisplayCol.before.insert(function (userId, doc) { 
    doc.userId = userId; 
}); 

クライアント

Template.index.helpers({ 
    taskInputs: function() { 
    var ready = Meteor.subscribe('displayCol').ready(); 
    var data = DisplayCol.find({}); 
    return {items: data, ready: ready}; 
    } 
}); 

答えて

0

はautopublishがまだインストールさ持っていますか?そうであれば、両方のクライアントが自動的にすべてを取得します。 'meteor remove autopublish'で削除する {userId:Meteor.userId()}条件をクライアント側に追加することもできます。

+0

これは、サーバー上でthis.userIdを使用することは役に立たないことを意味しますか? –

+0

絶対にありません。自動公開パッケージは、データのセキュリティを気にすることなく、ラピッドプロトタイピングにのみ使用することを目的としています。あなたはその段階を過ぎているようですので、あなたのプロジェクトからそれを削除する時です。 –

関連する問題