我只想发布登录用户创建的数据。我有以下publish
函数:
//server/collections/lists.js
Meteor.publish('lists', function(){
if(this.userId){
return listCollection.find({createdBy: this.userId});
} else {
this.ready();
}
});
但是当我以登录用户的身份创建文档时,DOM上应该使用我创建的文档“闪烁”模板的位置,然后它就会消失。我做错了什么?
答案 0 :(得分:2)
这是尝试在客户端上插入的症状,没有插入allow rule,然后服务器稍后拒绝插入。尝试在server
目录下添加类似的内容:
listCollection.allow({
insert: function (userId, doc) {
// the user must be logged in, and the document must be owned by the user
return (userId && doc.owner === userId);
}
});
请注意,您需要为特定用例自定义规则(例如,您可能没有owner
字段)。例如,您可以return userId
允许来自任何登录用户的插入。
或者,您无法设置allow
,而是使用method执行插入操作。一般来说,这是我的建议 - 请参阅我对this question的回答。