2012-10-22 11 views
5

मुझे फेसबुक एक्सेस टोकन चाहिए जो क्लाइंट पर मेरे उपयोगकर्ता के दस्तावेज़ में संग्रहीत है। meteor documentation के बाद, मुझे बस एक नया प्रकाशन कॉल जोड़ना चाहिए।Meteor.users संग्रह में फ़ील्ड जोड़ने के लिए कैसे करें

server.js में:

Meteor.publish("access_token", function() { 
    return Meteor.users().find(
    { _id : Meteor.userId() }, 
    {'services.facebook.accessToken': 1} 
); 
}); 

client.js में:

Meteor.subscribe("access_token"); 

ठीक है, यहाँ है मैं कहाँ खो जाना। क्या AccessToken अभी लॉग इन उपयोगकर्ता के लिए Meteor.users संग्रह में दिखाना चाहिए? पसंद:

var user = Meteor.users.findOne({ _id : Meteor.userId() }); 
console.log(user); // includes services.facebook.accessToken now 

जाहिर है, मैंने ऊपर की कोशिश की है और एक्सेस टोकन दिखाई नहीं दे रहा है। हां, मैंने पुष्टि की है कि मोंगो दस्तावेज़ में services.facebook है।

तो ... क्या मैं एक नया ग्राहक संग्रह बना सकता हूं और किसी भी तरह इसे नए प्रकाशन में लगा सकता हूं? मैं एक्सेस टोकन कैसे प्राप्त करूं?

उत्तर

9

आप कीवर्ड

Meteor.users.find({ _id: this.userId }, 
    { fields: { the-extra-fields-that-you-want-go-here: 1 } } 
); 

http://docs.meteor.com/#fieldspecifiers

+0

वास्तव में आप डबल कोष्ठक निकाल देना चाहिए, यह एक त्रुटि का कारण बनता है । सही जवाब अगर मुझे गलत नहीं है: 'Meteor.users()। ({_id: this.userId}, {फ़ील्ड: {extra_fields: 1}} );' – Mercutionario

+1

आप सही हैं। गलत टाइपिंग ~~~ – crapthings

4

"फील्ड" का उपयोग करना चाहिए आप क्षेत्र प्रकाशित कर सकते हैं आप चाहते हैं:

Meteor.publish(null, function() { 
    Meteor.users.find({}, {fields: {profile: 1, username: 1, ...}}) 
} 
+1

यह हमेशा सही नहीं है। यदि आप उपयोगकर्ता संग्रह (उपयोगकर्ता-ऑनलाइन प्लगइन) को उजागर कर रहे हैं, तो Meteor.users() उपयोगकर्ताओं के साथ सभी ऑनलाइन उपयोगकर्ता पाएंगे। उदाहरण के लिए, उदाहरण के लिए। –

संबंधित मुद्दे

 संबंधित मुद्दे