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

标签 javascript reactjs meteor

所以我有以下情况。我在容器 A 中返回一个有一群参与者的事件。容器 B 是 A 的子项,一旦订阅准备就绪并加载数据就会立即呈现。 B 现在应该使用所有 participant_ids 来获取相关的用户信息(即图片和姓名)。

我通常在 meteor 中访问数据的方式是像这样执行 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() 上面的地方我没有为用户提供(因为在服务器端我通过Meteor.users.find() ...如果我尝试以与事件类似的方式声明用户集合,我会收到一条关于重复声明的消息。

最佳答案

您不需要声明一个Users 集合; accounts-base 包提供了集合并通过 Meteor.users 访问它。 You can read more about that in the Meteor Guide on accounts-base .

请记住,只有当前登录用户的用户帐户会被发布,因此默认情况下用户无法看到其他用户的信息。如果您想向客户端公开其他用户的数据,您必须编写自己的自定义发布。

关于javascript - 如何导入用户/用户集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45152636/

相关文章:

javascript - React Styled Components 性能

javascript - react 导航 TabNavigator : Reset previous tab on tab change

node.js - Demeteorized 应用程序 - 错误 "npm install"

javascript - 无需重新加载的动态网页

javascript - jquery 折叠按钮不加载远程内容

javascript - Typescript 中使用 React Props 的展开运算符(错误 : . ..可以使用约束 {} 的不同子类型进行实例化)

javascript - this.state.search_results.map 不是一个函数,而是一个数组

mongodb - Meteor.Collection.ObjectID() 与 MongoDB ObjectId()

javascript - 无法识别 ES5 导出函数

javascript - 如何在检查该页面时提取显示为 # 的页面的实际 href