我正在尝试在创建新帐户时创建并保存新对象。我正在使用以下代码。
Parse.Cloud.afterSave(Parse.User, function(request) {
var userDataObjectId = request.object.get("userDataObjectId");
if(!userDataObjectId) {
console.log("NEW USER");
var userData = new Parse.Object("UserData");
userData.save(null, {
success: function(userData) {
console.log("SUCCEEDED SAVING USERDATA");
},
error: function(userData, error) {
}
});
}
});
我收到“新用户”日志输出,但确保保存UserData
对象的唯一方法是添加Parse.Cloud.useMasterKey()
。
我不明白为什么需要Master密钥来创建和保存我没有放入任何类级权限的对象,甚至客户端可以创建和保存对象而没有任何问题!
我没有看到任何与创建和保存普通类对象所需的主密钥有关的内容。有人可以帮我解决这个问题吗?非常感谢!
编辑:按照Russel的说明,我在userData保存错误中得到以下输出。
##################################################
# Alert #
##################################################
# #
# Error: 209 invalid session token #
# #
# [ OK ] #
# #
##################################################
我搜索了这个特定的错误,并试图在某些SO帖子中重新安装类似suggessted的应用程序(Android)。这没有用。此外,如果相关,我已经启用了“需要可撤销会话”选项。
答案 0 :(得分:0)
用户无法更改自己的用户对象。在这种情况下,没有登录用户(currentUser),因此您无法直接保存它,因此必须使用MasterKey。
请查看Android指南中的注册:https://parse.com/docs/android/guide#users-signing-up