我一直在尝试通过Facebook登录'我的应用程序的功能。我使用Parse作为后端。问题出现的原因是Parse在用户表中使用authData和随机用户名创建了一个新条目,即使用户表中存在同一个电子邮件的用户已存在。所以我现在要做的就是让用户通过Facebook SDK连接Facebook,然后收到他的电子邮件。然后我将这个来自Android的云代码称为将在Parse用户表中搜索与该电子邮件关联的用户。如果用户存在,我尝试更新authData字段。它可以更新除authData之外的任何列。从云代码更新authData时出现以下错误。
Uncaught Tried to save an object with a pointer to a new, unsaved object
以下是我使用的云代码:
Parse.Cloud.define("facebookLogin", function(request, response){
Parse.Cloud.useMasterKey();
var email = request.params.email;
var userQuery = new Parse.Query(Parse.User);
userQuery.equalTo("email", email);
userQuery.first({
success: function(user) {
if (user) {
Parse.Cloud.useMasterKey();
var authData = util.createFBAuthData(request.params.id, request.params.access_token, request.params.expiration_date);
console.log(authData);
user.set("authData", authData);
user.save(null, {
success: function(rest) {
response.success(rest);
},
error: function(error) {
console.log(error);
response.error(messageLog.getErrorMessage());
}
});
} else {
createNewUserEntry(request);
}
},
error: function() {
response.error(messageLog.getErrorMessage());
}
});
})
我不明白Parse为什么不允许使用云代码编辑/更新authData。我能够从解析仪表板手动将json插入(复制/粘贴)到用户表中的authData字段中。有谁遇到过这个问题?