0

Meteor アカウント パッケージを利用しているプロジェクトがあります。ユーザー名フィールドなしでサインインしているユーザーがいます。ローカルホストで実行中に更新しようとすると、それを使用Meteor.users.update({}, {$set:{username:"Zach Ary"}})すると美しく機能し、変更は accounts-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 に答える