Im créer une application de messagerie instantanée et je me demande comment je peux accéder à l'avatar des utilisateurs à partir du dossier public et nom d'utilisateur de la collection. Je voudrais que le nom d'utilisateur et l'avatar apparaissent à côté du message des utilisateurs. Je continue à obtenir une image brisée et [object Object]. Object Object, devrait être nom d'utilisateur avec l'avatar. Meteor: Comment puis-je publier et abonner un avatar utilisateur à partir du dossier public?
Modèle
<template name="chat_message">
<div class = "container">
<div class = "row">
<img src="/{{profile.avatar}}" class="avatar_img">
{{username}} said: {{text}}
</div>
</div>
<br>
</template>
côté client
Meteor.subscribe("userData");
Meteor.subscribe("users");
Template.chat_message.helpers ({
username: function() {
var userId = this.userId;
var user = Meteor.users.findOne(userId);
var username = user && user.profile && user.profile.username;
var avatar = user && user.profile && user.profile.avatar;
return {
username: username,
avatar: avatar
}
},
});
Template.chat_page.helpers({
messages:function(){
var chat = Chats.findOne({_id:Session.get("chatId")});
return chat && chat.messages;
},
other_user:function(){
return ""
},
});
côté serveur
Meteor.publish("userData", function(){
return Meteor.users.find({_id: this.userId});
});
Meteor.publish("users", function(){
return Meteor.users.find({ "status.online": true })
});
Meteor.methods({
sendMessage: function (chat) {
Chats.insert({
chat: chat,
createdAt: new Date(),
username: Meteor.user().profile.username,
avatar: Meteor.user().profile.avatar,
});
},
});
Utilisez-vous un package pour la création/la consolidation d'avatars? Si oui, lequel? – MasterAM
Non, je n'ai utilisé aucun paquet. Serait-il préférable d'en utiliser un? – Jessica
C'est à vous de décider, mais il y a plusieurs problèmes avec votre code. Certains d'entre eux sont adressés par la réponse (bien que je ne recommanderais pas tous les conseils donnés là). Veuillez partager un exemple de ce à quoi ressemble un objet utilisateur, et en particulier son profil. Réfléchissez bien à vos données: que voulez-vous stocker dans chaque message de discussion et dans chaque conversation? Pour un, si le nom d'utilisateur et l'avatar sont stockés dans le message de chat, vous n'avez pas besoin de la collection 'users' pour l'obtenir. – MasterAM