最近 meteor のブランチを試し始めましたauth
。 this.userId() を呼び出す meteor メソッドをどこで呼び出すかによって、null または必要なユーザー ID が返されます。
もう少し具体的に言うと、 Meteor.startup 内で初期化された coffeescript クラスから meteor メソッドが呼び出された場合は機能しますが、同じメソッドが Meteor.publish 内から呼び出された場合は機能しません。
meteor メソッドは単純で、おそらく関連性はありませんが、念のため:
Meteor.methods(
get_user_id: ->
return @userId()
)
編集: 人々は私の問題を再現できなかったようです。これは、todo 認証の例のパッチで、それを実証する必要があります。
diff --git a/examples/todos/server/methods.js b/examples/todos/server/methods.js
index e69de29..d4182a6 100644
--- a/examples/todos/server/methods.js
+++ b/examples/todos/server/methods.js
@@ -0,0 +1,6 @@
+Meteor.methods({
+ get_user_id: function() {
+ console.log(this.userId());
+ return this.userId();
+ }
+});
diff --git a/examples/todos/server/publish.js b/examples/todos/server/publish.js
index 1552c5e..87cb29f 100644
--- a/examples/todos/server/publish.js
+++ b/examples/todos/server/publish.js
@@ -16,6 +16,8 @@ Todos = new Meteor.Collection("todos");
// Publish visible items for requested list_id.
Meteor.publish('todos', function (list_id) {
+ Meteor.call('get_user_id');
+ //console.log(this.userId())
return Todos.find({
list_id: list_id,
privateTo: {
Eitanさん、パッチをありがとう!