我目前正在制作一个好友请求模块。用户单击“批准”,程序将朋友添加到Parse Server的_User
类中。我相信下面的代码可以做到,而且确实可以,但是问题是将当前用户更改为已添加的新朋友。因此,如果当前用户是“ 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: "[email protected]",
email: "[email protected]",
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);
});