gpt4 book ai didi

javascript - 根据当前用户属性发布Meteor Collection

转载 作者:行者123 更新时间:2023-12-03 12:01:51 24 4
gpt4 key购买 nike

我正在尝试基于用户所属的发布敏感信息的集合

数据示例:

Items:
ItemA - GroupA
ItemB - GroupA
ItemC - GroupB

Users:
UserA - GroupB
UserB - GroupA
UserC - GroupA

但是当我尝试这样做时

Meteor.publish('groupItems', function () {
return Items.filter({ groupId : Meteor.user().profile.groupId });
}

它失败了,因为我只被允许在这样的调用中访问Meteor.userId()。 (正如这个不明确的错误消息中所表达的,服务器端:

来自 sub 5jnantRJ6gyHpTkTy 的异常错误:Meteor.userId 只能在方法调用中调用。在发布函数中使用 this.userId。

问题:如何根据用户属性(例如 groupId)过滤集合?

最佳答案

在发布中,如果用户登录,您可以访问 this.userId ,它允许您查询数据库以获取其余的用户信息。因此,您可以将发布重写为:

Meteor.publish('groupItems', function () {
if ( ! this.userId ) return []; //return an empty array if no user is logged in.

var user = Meteor.users.find( this.userId );
return Items.filter({ groupId : user.profile.groupId });
});

关于javascript - 根据当前用户属性发布Meteor Collection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25378008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com