Mit autopublish Paket veröffentlichen wird entfernt, während dieser Meteor-Code ausgeführt wird, eine andere Benutzer-ID hat sich auf zwei verschiedenen Browsern Konsolen Meteor.userId();
bestätigt aber, wenn eine Zeichenfolge eingegeben wird, in der input von einer von ihnen, und eine collection.insert
ist fertig, die andere zeigt die gleiche Zeichenfolge.
Ich dachte, dass this.userId
gut genug für den Server war, um nur die Dokumente zu veröffentlichen, die zu jedem der verschiedenen Clients gleichzeitig gehören.Verschiedene userId erhalten gleiche Dokument mit Server this.userId
Warum passiert das und wie wird es repariert? Dank
Server
Meteor.publish('displayCol', function() {
return DisplayCol.find({userId: this.userId});
});
DisplayCol.before.insert(function (userId, doc) {
doc.userId = userId;
});
Kunde
Template.index.helpers({
taskInputs: function() {
var ready = Meteor.subscribe('displayCol').ready();
var data = DisplayCol.find({});
return {items: data, ready: ready};
}
});
Bedeutet das, dass die Verwendung von this.userId auf dem Server nutzlos ist? –
Absolut nicht. Das Autopublish-Paket soll nur für das Rapid Prototyping verwendet werden, ohne sich um die Datensicherheit kümmern zu müssen. Es scheint, dass Sie diese Phase hinter sich haben, also ist es an der Zeit, sie aus Ihrem Projekt zu entfernen. –