解析云代码:如何修改用户的authData列?

时间:2014-09-04 10:01:40

标签: android parse-platform

我一直在尝试通过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字段中。有谁遇到过这个问题?

0 个答案:

没有答案