如何将自定义用户数据添加到流星帐户

How to add custom user data to meteor accounts

本文关键字:添加 流星 数据 用户数 自定义 用户      更新时间:2023-09-26

我试图建立一个系统,使默认帐户系统内置到MeteorJS将有一个朋友列表。不幸的是,这行不通,我不知道为什么。我目前正在尝试简单地向用户添加一个friendList数组。配置文件,然后简单地将添加的用户追加到该列表的末尾。代码如下:服务器:

 Meteor.methods({
      addFriend: function(friendUsername){
          friendUserId = Meteor.users.findOne({username:friendUsername});
           if(friendUserId){
               Meteor.users.update({_id:Meteor.userId()}, {$set:{"profile.friendList":Meteor.user().profile['friendList'].push(friendUserId)}});
              return 1;
          }
          else return 0;
      }
  });
客户:

Template.addFriendPage.events({
    "keypress .addFriendByUsername": function(event, template){
        if(event.which == 13){
            event.preventDefault();
            var user = Meteor.userId();
            var friendUsername = template.find(".addFriendByUsername").value;
            console.log(friendUsername);
            console.log(user);
            console.log(Meteor.call("addFriend",friendUsername));
            if(Meteor.call("addFriend", friendUsername)){
                alert("successfully added friend!");
                template.find(".addFriendByUsername").value = "";   
            } else alert("not a valid username");
        }
    }
  });

html只是一个模板,我可以把用户名。我知道我必须添加将当前用户添加到其他用户的好友列表的部分,但我想先让这个工作

你的主要问题是你正在设置推送。相反,您需要使用$push

var userId = Meteor.user();
Meteor.users.update(userId, {$push:'profile.friendList':friendUserId});

第二,我认为在用户档案中存储好友是个不太好的主意。考虑创建一个好友集合。