Meteor发布当前用户的数据

时间:2015-02-15 23:58:20

标签: javascript meteor

我只想发布登录用户创建的数据。我有以下publish函数:

    //server/collections/lists.js

    Meteor.publish('lists', function(){
        if(this.userId){
            return listCollection.find({createdBy: this.userId});
        } else {
            this.ready();
        }
    });

但是当我以登录用户的身份创建文档时,DOM上应该使用我创建的文档“闪烁”模板的位置,然后它就会消失。我做错了什么?

1 个答案:

答案 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的回答。