javascript - 使用 Cloud Code javascript 和 iOS Parse SDK 编辑用户

标签 javascript ios xcode parse-platform swift3

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

现在我在我的云代码中添加了一个 blockuser.js 文件,该文件应该编辑 isBlocked 列( bool 类型) _User 类中的特定用户并将其设置为 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 代码中做错了什么吗?

最佳答案

经过几次尝试,我已经弄清楚了,这是我在 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)")
   }})

关于javascript - 使用 Cloud Code javascript 和 iOS Parse SDK 编辑用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40124319/

相关文章:

javascript - 鼠标离开视口(viewport)时如何使 JQuery .hover() 工作?

ios - 向 uicollectionview 添加静态背景

objective-c - 由于更改系统时钟导致的奇怪问题

iphone - iOS UInavigation bar to uitableviewcontroller not as rootviewcontroller in appdelegate

javascript - 我们可以用 cypress 测试元素文本是否包含 text_A 或 text_B 吗?

javascript - RequireJS 正在加载 Angular 应用程序,但不会创建 app.controller

javascript - 使用 JavaScript 修改书签的 url

ios - 如何在iPhone SDK中显示完整尺寸的标签栏图标?

传递值时,iOS Segue 无法按预期工作

ios - 如何使用动态单元格高度和自动布局以编程方式创建非常基本的 UITableView?