2016-06-02 4 views
0

私は/反応し、私は、システム内のすべてのユーザーを表示しようとしている流星を使用しています:/輸入/ APIを:流星/リアクト - すべてのユーザーを表示する(クライアントにすべてのユーザーを公開)

私が持っています/users.js

import { Meteor } from 'meteor/meteor'; 
import { Mongo } from 'meteor/mongo';  

if (Meteor.isServer) { 
    // This code only runs on the server 
    // Only publish tasks that are public or belong to the current user 
    Meteor.publish('allUsers', function() { 
    return Meteor.users.find({}, {fields: {"emails.address": 1}}); 
    });  
} 

と/imports/ui/App.jsx

import React, { Component, PropTypes } from 'react'; 
import ReactDOM from 'react-dom'; 
import { Meteor } from 'meteor/meteor'; 
import { createContainer } from 'meteor/react-meteor-data'; 
class App extends Component { 

    constructor() { 
     super(); 
     this.state = { 
      subscription: { 
       users: Meteor.subscribe('allUsers') 
      } 
     } 
    } 

    componentWillUnmount() { 
     this.state.subscription.users.stop(); 
    } 


    render() { 
     let users = this.props.users; 
     console.log(users); 
     return (<div> 
      <h1>GoArc User Manager</h1> 

      <div> 
       {users.map((user)=>{ 
        if ('emails' in user) { 
         email = user.emails[0].address; 
        } else { 
         email = '?' 
        } 
        return <div key={user._id}>{user._id} - {email}</div> 
       }) 
       } 
      </div> 
     </div>) 
    } 
} 


export default createContainer(() => { 
    return { 
    users: Meteor.users.find({ }).fetch(), 
    }; 
}, App); 

しかし、それはまだのみ、現在のログインユーザに示します。

autopublish/insecureをオンに設定すると、コードが正しく動作しています。

すべてのユーザーをMeteor/Reactでクライアントに公開する正しい方法は何ですか?

別の関連する問題は、私はautopublishを設定した場合にも/まだemail.addressフィールド上の安全でないが、現在のユーザーに対してのみ表示されていることである - 私はこのフィールドを公開していても:

return Meteor.users.find({}, {fields: {"emails.address": 1}}); 
+0

あなたの州にユーザを持ち、小道具からそれを取得しようとしています。 –

+0

私はこれを行う方法であることを説明しているhttps://www.youtube.com/watch?v=ootKAwnQiP4をフォローしていました。それが間違っている場合は、修正を提案してください –

答えて

0

コードが正しいですが、私/server/main.jsにimport '../imports/api/users.js'; を追加するのを忘れた

+0

おそらく、質問を削除する必要があります。 – MasterAM

+1

次回も同様の問題を抱えて検索します –

関連する問題