2016-04-14 13 views
0

Ich Veröffentlichung dieses Benutzerinformationen (als Test FYI, nicht alle diese Informationen in Produktion gehen offenbaren) wie folgtWarum fügt mein Abonnement keine Daten zu Meteor.user() hinzu?

Meteor.publish('user.private', function userPrivate() { 
    if (!this.userId) { 
    return this.ready(); 
    } 

    return Meteor.users.find({ 
    _id: this.userId 
    }, { 
    fields: { 
     'services.microsoft': 1, 
     'services.google': 1 
    } 
    }); 
}); 

Ich abonnieren:

Template.App_body.onCreated(function appBodyOnCreated() { 
    this.subscribe('user.private'); 
}); 

ich bestätigt habe dass diese exakte Abfrage funktioniert und Daten unter Verwendung von meteor mongo zurückgibt, diese Information jedoch nicht in dem Meteor.user() Aufruf auf dem Client angezeigt wird. Was mache ich falsch?

Antwort

1

versuchen Sie, den Veröffentlichungsnamen auf null zu ändern, damit er automatisch veröffentlicht wird.

Meteor.publish(null, function() { 
    return Meteor.users.find(this.userId, { 
    fields: { /** ... fields here */ } 
    }); 
}); 
+0

Können Sie klären, wie/warum das funktioniert? Und wenn Sie automatisch veröffentlichen sagen, brauche ich noch einen Abo-Anruf? –

+1

Nein, Sie müssen nicht abonnieren, es sollte automatisch sein, wenn "null" eingestellt ist. der Nullwert bedeutet im Wesentlichen "veröffentliche dies, egal was". – corvid

Verwandte Themen