2017-01-12 2 views
6

Я использую автономный сервер Parse, пытаясь отправить push-уведомление нескольким установкам.Из кода облака, как я могу запросить установки, соответствующие набору пользователей?

Анализировать сервер не позволит мне запросить коллекцию установки от Cloud кодекса, возвращающий следующую ошибку:

Error handling request: ParseError { 
    code: 119, 
    message: 'Clients aren\'t allowed to perform the find operation on the installation collection.' } code=119, message=Clients aren't allowed to perform the find operation on the installation collection. 

Запрос в облако код выглядит следующим образом:

var pushQuery = new Parse.Query(Parse.Installation); 
pushQuery.containedIn('user', users); 
pushQuery.find({ ... 

Что собственно способ получить список установок для набора пользователей и отправить все нажатия на них?

Я также попытался получить код облака, чтобы использовать masterKey, вызвав Parse.Cloud.useMasterKey(); непосредственно перед запросом. Никакой эффект и главный ключ не включены в заголовки запроса запроса.

+0

Ошибка упоминает клиенты не могут использовать запрос найти. Как вы называете облачную функцию от клиента? –

+0

Это все в обратном вызове Parse.Cloud.afterSave(). Клиент вызывает сервер для обновления объекта, и я пытаюсь запустить этот запрос после сохранения. Запрос напрямую не выполняется клиентом. –

+0

странно, что вы получаете ошибку клиента. Не могли бы вы поместить запрос где-то, кроме обратного вызова? –

ответ

4

Это потому, что Parse.Cloud.useMasterKey() устарел после версии Parse 2.3.0. Теперь вам нужно использовать useMasterKey: true в вашем запросе.

Например:

var pushQuery = new Parse.Query(Parse.Installation); 
pushQuery.containedIn('user', users); 
pushQuery.find({useMasterKey: true }).then(function(results) { 
+0

Спасибо за помощь! Это решило мою проблему. –

+1

Вы приветствуете сэра! – Cliffordwh