Jeder Benutzer hat einen Gravatar oder ein Profilbild, wenn hochgeladen. Eine Liste der Räume wird gezeigt (jeder hat 2 Parteien). Es zeigt das Gegenteil gravatar/hochgeladene Bild und seinen oder ihren Benutzernamen.Meteor Gravatar erscheint auf der Benutzerseite, aber nicht in der Liste der Räume
Problem: Die Gravatars erscheinen nicht, aber die hochgeladenen Bilder (wenn hochgeladen) erscheinen. Gravatar erscheint auf der Profilseite des Benutzers (mit Parametern als userId).
In der Konsole kehrt Meteor.user()
und Meteor.userId()
zurück, ok. Das ist der md5hash, der korrekte Benutzerdetails zurückgibt.
das Profil des Benutzers:
profileImg
- uploaded
username
md5hash
emails
Jedes Zimmer enthält
owner, receiver, people: [owner, receiver], id //roomId
allRooms.js
Template.allRooms.onCreated(function() {
this.autorun(() => {
this.subscribe('rooms');
this.subscribe('allUsers');
$.cloudinary.config({ cloud_name: "mthh" });
});
});
Template.allRooms.helpers({
chatPerson(){
return this.owner === Meteor.userId() ? Meteor.users.findOne(this.receiver) : Meteor.users.findOne(this.owner);
},
});
allRooms.html
{{#each rooms}}
{{#with chatPerson}} <!-- doesnt work if {{#if chatPerson}} ..nothing shows -->
{{#if profileImg.upload}}
<img src="{{c.url profileImg.upload format=format gravity='faces' mode='thumb' crop='thumb' width=60 height=60}}"> <!-- uploaded pic shows up -->
{{else}}
<div class="avatar" style="background: url({{ avatar 60 chatPerson}}; height: 60px; width: 60px; float:left;"></div> <!-- if no uploaded pic, gravatar doesnt show up but console.log shows user object details and md5hash number -->
{{/if}}
{{/with}}
{{chatPerson.username}} roomId: {{_id}} <!-- shows up -->
{{/each}}
Publikation
Meteor.publish('allUsers',() => {
return Meteor.users.find({
fields: { username: 1, emails: 1, profileImg: 1, md5hash: 1}
})
});
Können Sie nach Ihren Publikationen als Referenz hier? –