我在Meteor中开发应用程序,我想知道如何删除用户登录系统的帐户?我的意思是您可以删除您的帐户(如Tinder或Facebook),并且该应用程序会弹出您,因为您已经删除,并且您已不再存在。
只需一个简单的按钮"删除您的帐户"附接。
如果你能帮助我;我仍然是新手,我真的很感激,我尝试使用Meteor.userId()
检索当前用户的ID,我正在通过以下方式创建方法:
Meteor.methods({
SuprimirPersona: function(id) {
var postId = Meteor.userId();
const userId = this.userId;
const p = Meteor.users.findOne(postId);
if (userId && p === userId) {
Meteor.users.remove({
postId: this._id
},
function(error, result) {
if (error) {
console.log("Error removing user:", error);
} else {
console.log("users removed:" + result);
}
})
}
}
});
以下列方式调用方法,但它没有给出任何结果,我不明白为什么:
'click #Desactivarr': function() {
var postId = Meteor.userId();
Meteor.call('SuprimirPersona', userId, function(error, result) {
if (error) {
console.log("Somee Error");
}
});
Meteor.logout(function() {
FlowRouter.go('/');
});
},
希望有人能帮助我!此致!
答案 0 :(得分:0)
从用户的收藏中删除用户。您需要获取要删除的用户的用户标识。您可以通过在客户端上调用Meteor.userId()来获取用户的用户标识或服务器上的this.userId。您需要注销用户,并且在成功注销后,您可以将您使用的用户标识传递给meteor.users.remove(userId)
答案 1 :(得分:0)
您正在客户端和服务器端执行一些不必要的操作 - 比如多次获取相同的用户ID,甚至不将其传递到服务器端方法然后再次获取它。
我认为你要做的是获取发布内容的用户的id并将其传递到服务器端,在那里检查海报的id是否与当前用户的id相同。如果是,则删除用户,否则不会发生任何事情。
'click #desactivarr' : function() {
var postID = <get the id of the user you want to delete here>;
Meteor.call("suprimirPersona", postID, callbackfunc);
}
然后在服务器端它将是
Meteor.methods({
suprimirPersona : function(postID) {
var userID = Meteor.userId();
if (userID && postID === userID) {
Meteor.users.remove({ postId : userID })
}
}
});
Meteor.userId()和this.userId返回当前登录用户的id,该用户在客户端执行代码或向服务器端方法发出请求。
答案 2 :(得分:0)
我刚才在流星论坛上回答了这个问题: https://forums.meteor.com/t/how-to-remove-logged-in-user-in-meteor/42639/3
问题是您尝试通过postId而不是Users.remove({_ id:id})删除用户。你没有删除任何东西:)