gpt4 book ai didi

javascript - 使用 Parse JavaScript 定义两个用户之间的相互关系

转载 作者:行者123 更新时间:2023-11-28 15:38:56 26 4
gpt4 key购买 nike

我想在当前用户和另一个用户(userB)之间设置一个简单的关系。我可以创建 sampleRelation,并且当前用户显示在数据浏览器中 userB 的 sampleRelation 列中,但当前用户的关系列表是空白的,即使它应该显示 userB 的名称。 Javascript 对我来说完全陌生,我必须使用它,因为 CloudCode,最初我使用的是 iOS SDK,我这样调用这个 CloudCode 函数:

[query getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) {
if (object) {
PFUser *user = (PFUser *)object;
[PFCloud callFunction:@"editUser" withParameters:@{@"userId": user.objectId}]; }];

这是 JavaScript 实现:

Parse.Cloud.define('editUser', function(request, response) {
var userId = request.params.userId;

var User = Parse.Object.extend('_User'),
user = new User({ objectId: userId });

var currentUser = request.user;

var relation = user.relation("sampleRelation");
relation.add(currentUser);

currentUser.save();

Parse.Cloud.useMasterKey();
user.save().then(function(user) {
response.success(user);
}, function(error) {
response.error(error)
});
});

我确信我需要以某种方式保存当前用户的关系,因此我添加了 currentUser.save(); 行,但没有任何改变。我无法弄清楚我错过了一些要实现的东西或者现有的代码隐藏了错误。

我的尝试基于蒂莫西的回答。

Parse.Cloud.define('editUser', function(request, response) {
var userId = request.params.userId;

var User = Parse.Object.extend('_User'),
user = new User({ objectId: userId });

var currentUser = request.user;

var relation = user.relation("sampleRelation");

relation.add(currentUser);

Parse.Cloud.useMasterKey();
var userQuery = new Parse.Query(Parse.User);
userQuery.get(request.params.userId)
.then(function (user) {
var relation = user.relation("sampleRelation");
relation.add(request.user);
// chain the promise
return user.save();
).then(function (user) {
response.success(user);
}, function (error) {
response.error(error);
});

这是我得到的错误:

Update failed with Could not load triggers.  The error was Uncaught SyntaxError: Unexpected token . in main.js:28

第二次更新

Parse.Cloud.useMasterKey();
var userQuery = new Parse.Query(Parse.User);
userQuery.get(request.params.userId)
.then(function (user) {
var relation = user.relation("sampleRelation");
relation.add(request.user);
// chain the promise
return user.save();
}).then(function (user) {
response.success(user);
}, function (error) {
response.error(error);
});

最佳答案

您没有更改 currentUser,因此调用 currentUser.save() 不会执行任何操作。

此外,在获取现有用户时,您应该执行以下操作:

Parse.Cloud.define('editUser', function(request, response) {
Parse.Cloud.useMasterKey();

var userQuery = new Parse.Query(Parse.User);

userQuery.get(request.params.userId)
.then(function (user) {
var relation = user.relation("sampleRelation");
relation.add(request.user);
// chain the promise
return user.save();
}).then(function (user) {
var currentUser = request.user;
var relation = currentUser.relation("sampleRelation");
relation.add(user);
// chain the new promise
return currentUser.save();
}).then(function () {
response.success();
}, function (error) {
response.error(error);
});
});

关于javascript - 使用 Parse JavaScript 定义两个用户之间的相互关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24587976/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com