Dit spørgsmål ser ud til at blande Meteor.userId()
og Meteor.user()
. Hoveddelen af spørgsmålet ser ud til at spørge om førstnævnte, mens emnelinjen spørger om sidstnævnte. Jeg vil prøve at tage fat på begge dele.
- På serveren, inden for en publiceringsfunktion, kalder enten
Meteor.userId()
ellerMeteor.user()
vil livedata_server. kører din metodeimplementering med brugerens ID (og nogle andre oplysninger) gemt i en bestemt på fiberen.Meteor.userId()
henter bare ID'et fra slot på den aktuelle fiber. Det burde være hurtigt.Det er generelt nemmere at omfaktorere kode, der bruger
Meteor.userId()
endthis.userId
fordi du ikke kan brugethis.userId
uden for metodeteksten (f.eks.this
vil ikke have en 'userId'-egenskab i en funktion, du kalder fra metodeteksten), og du kan ikke brugethis.userId
på klienten. - På klienten,
Meteor.userId()
ogMeteor.user()
vil ikke kaste fejl ogthis.userId
vil ikke virke. Kald tilMeteor.user()
er essentiel til users.findOne(Meteor.userId()) , men da dette svarer til en mini-mongo DB-forespørgsel, vil ydeevnen sandsynligvis ikke være et problem. Men af sikkerhedsmæssige årsager returneres objektet afMeteor.user()
kan være ufuldstændig (især hvisautopublish
pakken er ikke installeret).