最近我突然明白了,如果我有以下架构怎么办?
Posts: {
...
flaggedByUsers: [],
flagCount:
}
...其中flaggedByUsers存储用户_ids和flagCount存储标记帖子的用户总数。
由于我需要为所有用户的配置文件对象发布部分Meteor.user(这是一个好主意吗?),我注意到因为用户_id因此而始终可见,并且flaggedByUsers用于确定是否为了隐藏标记它的用户的内容,作为另一个用户,我将能够看到谁通过控制台标记了帖子。
我正在考虑这是否是一个大问题(如Reddit的情况,你不能看到谁投票/投票)。有关如何隐藏_ids的任何建议?我正在考虑使用另一个具有随机生成的值的字段,如_id,并且仅对登录用户可见,然后使用该字段中的值插入flaggedByUsers ...
答案 0 :(得分:0)
除非配置文件包含敏感数据,否则发布其他用户的配置文件数据不太可能成为问题。您对flaggedByUsers
字段的担忧是有道理的,尽管从控制台隐藏信息的时间过长似乎是一种不成熟的措施(在您的服务上线后,有多少人真的会立即找到这些信息?)。 / p>
考虑到限制因素:
flaggedByUsers
数据。也许你可以像这样实现你的帖子发布:
Meteor.publish('posts', function() {
return Posts.find(
{flaggedByUsers: {$ne: this.userId}}, {fields: {flaggedByUsers: 0}}
);
});