1

我有一个 facebook 请求对话框,用于邀请朋友加入我的应用程序,当然我会收到一个带有受邀用户 ID 的响应,然后我将其存储在用户文档下名为“Groups”的集合中:所以它看起来像这样:

{ "creator" : "qzD5X33Jejq5BYRdZ", "name" : "Soccer", "emailAt" : 4, "date" : "10/31/2013", "friends" : [  "dude dude",  "another dude" ], "location" : "xxx", "rules" : "Soccer", "desc" : "Soccer", "users" : [  "100006794617787",  "100006832923859" ], "_id" : "ZMgzuy88EiSWF6xnS" }

在我的发布功能上,我只希望创建者和用户拥有这个组,我知道要访问我需要使用的用户集合,this.user并且在我使用的客户端上,Meteor.user() 所以我尝试了这个:

Meteor.publish("Teams",function(){
    return Groups.find({creator:this.userId},{users:this.user.services.facebook.id},{fields:{
        date:false,
        desc:false,
        rules:false,
        friends:false,
        location:false,
        emailAt:false
    }});
});

但是您可以猜到这不起作用,有什么建议可以使它起作用吗?注意:我只使用 facebook 登录,所以使用 facebook id 非常方便。

4

1 回答 1

1

我不确定你可以打电话this.user(我认为)。您需要解决它,而不是this.user使用user并解决它:

var user = Meteor.users.findOne({_id: this.userId});

另一个是一个小错字:):

return Groups.find({creator:this.userId, users:user.services.facebook.id}...

代替

return Groups.find({creator:this.userId}, {users:this.user.services.facebook.id}...
于 2013-10-25T17:18:02.230 回答