2013-10-24 13 views
7

Wiem, że to pytanie było zadawane wiele razy, ale mam trudny czas publikowania tych informacji.Publikowanie niestandardowych pól Meteor.user()

W Accounts.onCreateUser dodaję pole jak tak

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

opublikować tę informację;

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

i

Meteor.subscribe('user'); 

Po debugowania Publish zapytanie zwraca poprawne informacje, ale to nigdy nie jest podana do klienta przy próbie dostępu Meteor.user(). Czy muszę zrobić coś innego, aby umożliwić dostęp do informacji przez Meteor.user()?

Wszelkie sugestie?

Odpowiedz

18

Będziesz chciał użyć wartości null do opublikowania dla pojedynczego użytkownika.

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

Przepraszam za nowość meteorytów, ale czy możesz wyjaśnić lub podać jakiekolwiek odwołanie do dokumentu lub poradnika dla używania null jako nazwy publikacji? Czy subskrybcja jest konieczna lub czy wartości będą teraz automatycznie widoczne w bieżącym obiekcie użytkownika? Dzięki! – shawnim

+1

Nie jest wymagana subskrypcja - opcja publiczna null oznacza "autopublish" (nie należy jej mylić z pakietem meteorologicznym zwanym autopublish). http://support.kadira.io/knowledgebase/articles/379961-what-is-null-autopublish- publikacja –

Powiązane problemy