【问题标题】:Edit a User with Cloud Code javascript and iOS Parse SDK使用 Cloud Code javascript 和 iOS Parse SDK 编辑用户
【发布时间】:2017-02-28 16:13:55
【问题描述】:

我正在开发一个带有托管在 back4app 上的 Parse SDK 的 iOS 应用程序,我在 back4app 仪表板中的应用程序在 Cloud Code 中托管了一个发送推送通知的 main.js 文件,它被代码调用并且工作正常。

现在我在我的云代码中添加了一个 blockuser.js 文件,该文件应编辑 _User 类中特定用户的isBlocked 列(布尔类型)并将其设置为true,这是我使用的代码:

Parse.Cloud.define("blockUser", function(request, response) {

    var userId = request.params.userId,

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

    user.set('isBlocked', true);

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

});

这是我为调用该函数而编写的 Swift 代码:

let request = ["userId" : userPointer.objectId!] as [String : Any]

PFCloud.callFunction(inBackground: "blockUser", withParameters: request as [String : Any], block: { (results, error) in
        if error == nil {
           print ("\(userPointer["username"]!) has been blocked!")
           // error in cloud code
        } else {
            print ("\(error!.localizedDescription)")
}})

Xcode 控制台打印出这条消息:

[Error]: Invalid function. (Code: 141, Version: 1.14.2)

事实上,blockUser 函数根本不起作用。

有人知道我在 .js 或 swift 代码中做错了什么吗?

【问题讨论】:

    标签: javascript ios xcode parse-platform swift3


    【解决方案1】:

    经过几次尝试,我想通了,这是我在 Cloud Code 的 main.js 文件中添加的函数:

    // BLOCK A USER  ----------------------------------------
    Parse.Cloud.define("blockUser", function(request, response) {
    
        var userId = request.params.userId;
    
        var User = Parse.Object.extend('_User'),
        user = new User({ objectId: userId });
    
        user.set('isBlocked', true);
    
        Parse.Cloud.useMasterKey();
        user.save(null, { useMasterKey: true } ).then(function(user) {
            response.success(user);
        }, function(error) {
            response.error(error)
        });
    });
    

    这是调用blockUser函数的Swift 3代码:

        let request = [
            "userId" : userPointer.objectId!
        ] as [String : Any]
    
        PFCloud.callFunction(inBackground: "blockUser", withParameters: request as [String : Any], block: { (results, error) in
         if error == nil {
              print ("\(userPointer["username"]!) has been blocked!")
         // error
         } else {
             print ("\(error!.localizedDescription)")
       }})
    

    【讨论】:

      【解决方案2】:

      您似乎没有在服务器上重新加载您的 main.js(您编写云代码函数的文件)

      【讨论】:

        猜你喜欢
        • 2015-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-17
        • 2014-04-21
        • 1970-01-01
        • 2015-05-29
        • 2016-11-12
        相关资源
        最近更新 更多