【问题标题】:Parse, PFCloud - how to rewrite this PFQuery?Parse, PFCloud - 如何重写这个 PFQuery?
【发布时间】:2016-02-25 12:04:55
【问题描述】:

我已经坚持了一整天,所以如果有人能指出我正确的方向,那就太好了!

我目前正在构建一个使用 Parse 作为后端和 Parse Cloud 来加密/解密数据的 IOS 应用程序。在下面的代码中,我在 Parse 上执行 PFQuery 以获取我需要的数据,但是我想在返回数据之前在服务器端解密数据。

这是我现在用来请求和显示数据的代码:

(PFQuery *)queryForTable
{
    arrdossier=[[NSUserDefaults standardUserDefaults ]objectForKey:@"Dossier_IDs"];
    query1  = [PFQuery queryWithClassName:self.parseClassName];
    [query1 whereKey:@"Dossier_ID" containedIn:arrdossier];
    [query1 whereKey:@"status" equalTo:@"open"];

  return query1;
}

我在 Parse Cloud 上的代码是:

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

    var doss = Parse.Object.extend("Dossier");
    var q = new Parse.Query(doss);
    q.containsAll("Dossier_ID", request.params.Dossier_IDs);
    q.find({
        success: function(results) {
        // iterate through results to call decrypt()
        response.success();
    }, 
    error: function() {
        response.error("failed");
    }
    })
});

PFCloud callFunctionInBackground 应该如何实现这一点?

谢谢!

【问题讨论】:

    标签: ios parse-platform pfquery


    【解决方案1】:

    我只有我使用的目标 C 代码,但将其翻译成 Swift 应该不难。

    [PFCloud callFunctionInBackground:@"decryptQuery"
                           withParameters:@{@"Dossier_IDs": @[ARRAY WITH IDS]}
                                    block:^(id answer, NSError *error) {
                                        if (!error) {
                                            //do something with answer
                                        }
                                        else {
                                            //do something with error
                                        }
    
    }];
    

    【讨论】:

    • queryForTable 需要一个 PFQuery。我已经更改了云代码中“结果”的值,但是我该如何返回呢?我怎样才能把它变成一个 PFQuery?
    • @maverickandy 调用不需要 PFQuery 的云函数,调用我上面提供的函数,您需要将任何信息传递到云吗?如果是这样,究竟是什么?您希望云返回什么?
    • 流程如下:在 IOS 应用程序中,我运行 PFQuery 来提取数据(即“档案”)。但是,我现在添加了使用云代码加密/解密数据的功能。因此,我的 IOS 函数 (queryForTable) 需要返回一个 PFQuery 以便我的 IOS 应用程序正常运行。所以现在我构建了一个云代码来运行 PFQuery 并遍历 PFQuery 的结果并使用解密版本更新字段(例如 results[i].set("name", decrypt(name))。有吗一种让我从云代码返回 PFQuery(或 PFObject 并以某种方式将其转换为 PFQuery)的方法?
    • 所以要补充一点:您的功能非常有用,帮助我进行了下一步,但是我现在遇到了上述问题。
    • @maverickandy 我不知道将其转换为 PFQuery 的任何方法,但是您可以从云代码返回结果,然后使用该数组执行您对该 PFQuery 所做的任何事情,如果你应该告诉我你在做什么,也许我可以提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多