用Parse JavaScript定义两个用户之间的相互关系
Define mutual relation between two user with Parse JavaScript
我想在当前用户和另一个用户(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();
行,但没有任何改变。我不知道我错过了什么实现或现有的代码隐藏了错误。
我的尝试基于Timothy的回答。
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);
});
});
相关文章:
- 在Google Analytics中跟踪用户,但只能在两个操作之间跟踪
- 通过node.js和socket.io在两个用户之间发送消息
- 获取用户和服务器时间之间的时间差
- 如何要求用户输入一个介于 1 和 50 之间的整数,然后小程序打印出一行这个星数
- 用户如何获取两个时间戳之间的对象
- 一个用户脚本的两个实例如何在帧之间进行通信
- 用户输入时刻js的两个日期之间的差异
- 计算服务器和用户时间之间的差异
- 使用函数验证最小值和最大值之间的用户输入
- 在数据库中管理用户之间的关系
- 如何在不同计算机上的用户之间共享网站上的实时更新
- 有没有办法仅使用 JavaScript 来操纵控制台.log输出和下一个用户输入提示之间的时间
- 用户和服务器之间的HTML5同步
- 节点电报机器人 API,在用户之间进行链对话
- 如何使用 JavaScript 将用户限制为在 1 到 12 之间输入 asp.net 中的数字 C# 使用
- Parse.com - 表和用户表之间的关系
- 真实的用户操作和程序生成的操作之间有什么区别
- 用户请求和AJAX/资源请求之间的差异
- 在页面之间传递用户数据
- Couchdb/Pouchdb多个用户和多个文档之间的关系