1

我目前正在制作一个朋友请求模块。用户单击“批准”程序将朋友添加到_UserParse Server 上的类。我相信下面的代码会做到这一点,而且确实做到了,但问题是将当前用户更改为已添加的新朋友。因此,如果当前用户是“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());
        }
    }
});
4

1 回答 1

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);
});
于 2020-02-27T16:57:11.380 回答