我使用this package将Facebook数据作为Meteor中的集合进行管理。由于在用户使用Facebook登录之前无法定义FacebookCollection,this ticket描述了一种自动执行此操作的方法;我一直在尝试这样做:
/lib/collections.js
Tracker.autorun(_.bind(function(){
var user = this.user;
if (user && user.services && user.services.facebook && !Friends){
Friends = FacebookCollections.getFriends("me",["id","name"],100);
}
}),this);
使用一些日志语句,我发现这只运行一次,早在用户仍处于undefined
时,但再也没有。我怀疑这不会被重新运行,因为它没有引用被动数据源,即用户集合,但我不太清楚这里要做什么才能使其工作。
注意:故障单中的示例使用Meteor.user(),但是,这会给出错误:
Error: Meteor.userId can only be invoked in method calls. Use this.userId in publish functions.