如何导入用户/用户集合?

时间:2017-07-17 19:58:04

标签: javascript reactjs meteor

所以我有以下情况。我在容器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集合,我会收到有关重复声明的消息。

1 个答案:

答案 0 :(得分:1)

您无需声明Users集合; accounts-base包使用Meteor.users提供对它的收集和访问。 You can read more about that in the Meteor Guide on accounts-base

请记住,只发布当前登录用户的用户帐户,因此默认情况下用户无法查看其他用户的信息。如果要将其他用户的数据公开给客户端,则必须编写自己的自定义出版物。