如何在Parse中创建新用户而不更改当前用户?

时间:2019-05-01 03:30:22

标签: java android parse-platform parse-android-sdk

我目前正在制作一个好友请求模块。用户单击“批准”,程序将朋友添加到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());
        }
    }
});

1 个答案:

答案 0 :(得分:0)

为了使用客户端代码在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);
});