0

我有一个使用 Meteor 帐户包的项目。我有一个没有用户名字段的用户登录。当我在 localhost 上运行时尝试更新它时,使用Meteor.users.update({}, {$set:{username:"Zach Ary"}})它效果很好,并且更改通过帐户 ui 和meteor mongo. 但是,当我将它部署到远程流星服务器并尝试更新它时,没有显示任何更改。有任何想法吗?

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

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

谢谢

4

2 回答 2

1

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

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

服务器上是这样的:

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

并在客户端

  Meteor.subscribe("userData")
于 2012-11-27T06:57:20.427 回答
0

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

于 2012-11-27T13:12:12.113 回答