更新流星中的用户电子邮件地址

Meh*_*osh 3 meteor angular2-meteor

我想通过以下方式更新流星中的电子邮件地址:

Meteor.users.update(this._id, {$set: {"emails[0].address": "deleted_" + preEmail }});
Run Code Online (Sandbox Code Playgroud)

但是,而不是更新email数组,先添加0参数,然后添加address,然后创建一个新字段,例如emails [0]然后address。有趣的是,在另一个.js文件中它可以正常工作!

Ami*_*mar 6

你就快到了。在您的代码中将“ emails[0].address”更改为emails.0.address. 我的代码在 Angular 2 流星中运行。我希望它也对你有用:)

 Meteor.users.update({
        _id: id
     }, 
     {
        $set: {
            'emails.0.address': address,
            "username": username
        }
    });
Run Code Online (Sandbox Code Playgroud)


Sea*_*ean 5

帐户包附带了用于更改电子邮件地址的预建功能。

import { Accounts } from 'meteor/accounts-base'

//get old email
const oldEmail = Meteor.users.findOne(this.userId).emails[0].address;

//add new email
Accounts.addEmail(this.userId, args.email);

//remove old email
Accounts.removeEmail(this.userId, oldEmail);
Run Code Online (Sandbox Code Playgroud)