我目前正在制作一个好友请求模块。用户单击“批准”,程序将好友添加到 Parse Server 上的 _User
类中。我相信下面的代码可以做到这一点,而且确实如此,但问题是,它将当前用户更改为已添加的新 friend 。因此,如果当前用户是“Bob”,并且 Bob 添加了“Mike”,则新的当前用户是 Mike。
我一直在尝试使用 signUp()
、signUpInBackground()
,但似乎都不起作用。
ParseUser newFriend = new ParseUser();
newFriend.setUsername(friendRequestFrom); //friendRequestFrom is a String that carries a name
newFriend.setPassword("12345");
newFriend.signUpInBackground(new SignUpCallback() {
@Override
public void done(ParseException e) {
if(e == null){
Log.i("Parse Result","Succesful!");
Log.i("Current User",ParseUser.getCurrentUser().getUsername());
}
else{
Log.i("Parse Result","Failed " + e.toString());
}
}
});
最佳答案
为了使用客户端代码在 Parse 中创建新的 Parse 用户,您必须使用应用后端托管的云代码功能。
事实上,出于安全原因,客户端库不允许直接添加用户。
在服务器端,创建一个包含以下代码的文件 (main.js):
Parse.Cloud.define("createNewUser", function(request, response) {
var User = Parse.Object.extend("User");
var us = new User();
us.set("username", request.params.username);
us.set("name", request.params.name);
us.set("email", request.params.email);
us.set("password", request.params.password);
us.save(null, {
useMasterKey: true,
success: function(obj) {
response.success("user added");
},
error:function(err){
response.error(err);
}
});
});
然后,您可以在 JavaScript 客户端代码中测试此功能,如下所示:
var params = { username: "userEmailAddress@yahoo.fr",
email: "userEmailAddress@yahoo.fr",
name:"Here write the user name",
password:"TheUserPasswordHere"};
Parse.Cloud.run("createNewUser", params).then(function(response){console.log("response: "+response);}).catch(function (err) {
console.log("error: "+err);
});
关于java - 如何在 Parse 中创建新用户而不更改当前用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55931270/