2013-10-24 16 views
7

Bu sorunun birçok kez sorulmuş olduğunu biliyorum, ancak bu bilgileri yayımlamakta zorlanıyorum. Accounts.onCreateUser yılında Özel Meteor.user() alanları yayınlanıyor

Ben bu bilgiyi yayınlamak yüzden

{ 
... 
user['info'] = { email: options.email, is_admin: false}; 
} 

gibi bir alan ekliyorum;

Meteor.publish('user', function() { 
    return Meteor.users.find({}, { fields: { info: 1} }); 
} 

ve sorguyu Yayınla ayıklama doğru bilgileri verir ama Meteor.user erişmeye çalıştığınızda o müşterinin vermemiş sonra

Meteor.subscribe('user'); 

(). Bilgilerin Meteor.user() tarafından erişilmesine izin vermek için başka bir şey yapmak zorunda mıyım?

Herhangi bir öneriniz var mı?

cevap

18

Tek kullanıcılı yayınlamak için null değerini kullanmak istersiniz.

Meteor.publish(null, function() { 
    return Meteor.users.find({_id: this.userId}, {fields: {info: 1}}); 
}); 
+2

Lütfen meteor bültenimi affedin ama yayın adı olarak null'u kullanmak için herhangi bir dokümanı veya öğretici başvurusunu açıklayabilir misiniz? Bir abone gerekli mi yoksa değerler şimdi geçerli kullanıcı nesnesinde otomatik olarak görülebilir mi? Teşekkürler! – shawnim

+1

Abonelik gerekmez - null ifadesi 'autopublish' anlamına gelir (autopublish adlı Meteor paketi ile karıştırılmamalıdır). http://support.kadira.io/knowledgebase/articles/379961-what-is-null-autopublish-publication –

İlgili konular