我的发布功能有明显错误吗?
我看到的行为是,当两个客户都同意订阅时,似乎他们两个都获得了“最新”的结果集(最近的订阅请求)。这意味着客户端正在从不同的订阅请求中获取泄露的数据。
非常感谢!
约翰
Meteor.publish('myFiles', function () {
var regexUser = '';
var user = '';
if (this.userId) {
user = Meteor.users.findOne(this.userId);
} else {
user='';
}
if (user && user.profile && user.profile.folder) {
var query = {key: {$in: [/^Team files\//i, new RegExp('^' + user.profile.folder)]}};
return MyFiles.find(query);
} else {
return MyFiles.find({
key: {
$in: [/^Team files\//i]
}
});
}
});
更新:我已让它正常工作,但我看不出有其他方法可以使用替代方法!
if (this.userId && Meteor.users.findOne(this.userId).profile && Meteor.users.findOne(this.userId).profile.folder)
return MyFiles.find({
$or: [
{key: new RegExp('^' + Meteor.users.findOne(this.userId).profile.folder + '/')}, {key: new RegExp('^' + 'Team files/')}]
});