2016-02-25 2 views
1

Я застрял на этом целый день, так что было бы здорово, если бы кто-нибудь мог указать мне в правильном направлении!Parse, PFCloud - как переписать этот PFQuery?

В настоящее время я создаю приложение IOS, которое использует Parse как back-end и Parse Cloud для шифрования/дешифрования данных. В следующем коде я выполняю PFQuery на Parse, чтобы получить нужные мне данные, но я хочу дешифровать данные на стороне сервера перед возвратом данных.

Это код, который я теперь использовать для запроса и показать данные:

(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.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 выглядеть на добиться этого?

Спасибо!

ответ

0

У меня есть только объективный код 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 
            } 

}]; 
+0

queryForTable ожидает PFQuery. Я изменил значения для «результатов» в Облачном коде, но как я могу вернуть это? И как я могу превратить это в PFQuery? – maverickandy

+0

@maverickandy, чтобы вызвать функцию облака, вам не нужен PFQuery, вызовите функцию, как я сказал выше, вам нужно передать любую информацию в облако? если да, то что именно? и что вы хотите, чтобы облако вернулось? –

+0

Поток выглядит следующим образом: в приложении IOS я запускаю PFQuery, чтобы вытащить данные (т. Е. «Досье»). Однако теперь я добавил функциональность для шифрования/дешифрования данных с помощью Cloud-кода. Таким образом, моя функция IOS (queryForTable) должна вернуть PFQuery для моего приложения IOS для правильной работы. Итак, теперь я создал Cloud-код для запуска PFQuery и перебора результатов PFQuery и обновления полей с расшифрованными версиями (например, результаты [i] .set («name», decrypt (name)). Есть ли способ вернуть PFQuery (или PFObject и каким-то образом передать его PFQuery) из облачного кода? – maverickandy

Смежные вопросы