Meteor不更新远程服务器上的用户数据库

时间:2012-11-27 00:40:08

标签: mongodb meteor account

我有一个使用Meteor帐户包的项目。我有一个没有用户名字段的用户登录。当我在本地主机上运行时尝试更新它时,使用Meteor.users.update({}, {$set:{username:"Zach Ary"}})它可以很好地工作,并且通过accounts-ui和meteor mongo反映出这种变化。但是,当我将其部署到远程流星服务器并尝试更新它时,不会显示任何更改。有任何想法吗?

这是服务器上使用的代码(仅用于测试目的)

Meteor.users.allow({
  update:function(userId, upd) {
    console.log(upd)
    return true;
  }
})

由于

2 个答案:

答案 0 :(得分:1)

不确定这是您的问题,但在开发服务器上Meteor自动发布您的所有馆藏。

捆绑和部署时,需要手动发布集合。

服务器上有这样的东西:

Meteor.publish("userData", function () {
        return Meteor.users.find({_id: this.userId});
    });

并在客户端

  Meteor.subscribe("userData")

答案 1 :(得分:0)

好的,所以这让我措手不及。显然,这与将其发布到服务器无关,而只是一个误导性的巧合。问题源于我的更新命令Meteor.users.update({}, {$set:{username:"Zach Ary"}})。为此,它需要Meteor.users.update({_id:Meteor.userId()}, {$set:{username:"Zach Ary"}})。否则它会尝试更新以前登录过的用户。我不知道这是一个错误,还是一个被误解的功能,但它似乎可以解决这个问题。