2012-11-27 72 views
0

我有一個項目正在使用流星賬戶軟件包。我有一個用戶沒有用戶名字段登錄。當我在本地主機上運行時嘗試更新它時,使用Meteor.users.update({}, {$set:{username:"Zach Ary"}})它運行的非常好,而且這種更改通過accounts-ui和meteor mongo反映出來。但是,當我將它部署到遠程流星服務器並嘗試更新它時,不會顯示任何更改。有任何想法嗎?流星不會更新遠程服務器上的用戶數據庫

這是服務器(僅用於測試目的)使用的代碼

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

感謝

回答

1

不知道這是你的問題,但在開發服務器上流星autopublishes所有的藏品。

當您捆綁和部署時,您需要手動發佈您的集合。

像這樣的事情在服務器上:

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

和客戶

Meteor.subscribe("userData") 
+0

是的,但Meteor.users數據庫不會自動發佈(針對給定的用戶),並訂閱? – Zwade

+1

這與開發服務器無關。流星自動發佈*默認*。所以只需「流星刪除自動發佈」,然後它將工作 – acemtp

0

好,所以這個我個措手不及。顯然這與將它發佈到服務器無關,而只是一個誤導性的巧合。問題源於我的更新命令Meteor.users.update({}, {$set:{username:"Zach Ary"}})。爲了這個工作,它需要是Meteor.users.update({_id:Meteor.userId()}, {$set:{username:"Zach Ary"}})。否則,它會嘗試更新先前登錄的用戶。我不知道這是一個錯誤還是一個誤解的功能,但它似乎有訣竅。

+0

第一次更新電話將只更新在mongo或minimongo中找到的第一條記錄。您應該始終準確地掌握您嘗試更新的內容。如果可用,請始終使用ID。 編輯:Woops,這是古老的。 – jimmiebtlr

相關問題