所以我有以下情况。我在容器A中返回一个包含大量参与者的事件。容器B是A的子节点,并在订阅准备好并加载数据后立即呈现。 B现在应该使用所有participant_ids来获取相关的用户信息(即图片和名称)。
我通常在流星中访问数据的方法是通过这样做 createContainer :
const ComponentContainer = createContainer((props) => {
const eventSub = Meteor.subscribe('getEvent',props.find.filter);
const loading = !eventSub.ready();
const eventData = loading ? null : Events.find(fin).fetch()[0];
const eventDataExists = !loading && !!eventData;
return {
loading,
eventData,
eventDataExists,
}
}, Component)
在模块中我的组件存在于我导入事件集合,如下所示:
import { Events } from '/imports/api/collections'
我在/ imports / api / collections中定义了我的所有集合,如下所示:
import { Mongo } from 'meteor/mongo'
export const Events = new Mongo.Collection('events');
我也像这样导入我的服务器集合(在/server/main.js中)
import {
Events,
...,
} from '/imports/api/collections';
现在因为我想使用订阅部分用户以及我在上面的Events.find(fin).fetch()我没有为用户提供(因为在服务器端我获得) info来自Meteor.users.find()...如果我尝试以与Events类似的方式声明Users集合,我会收到有关重复声明的消息。
答案 0 :(得分:1)
您无需声明Users
集合; accounts-base
包使用Meteor.users
提供对它的收集和访问。 You can read more about that in the Meteor Guide on accounts-base
请记住,只发布当前登录用户的用户帐户,因此默认情况下用户无法查看其他用户的信息。如果要将其他用户的数据公开给客户端,则必须编写自己的自定义出版物。