2017-01-12 53 views
6

Używam autonomicznego serwera Parse, próbującego wysłać powiadomienie wypychane do wielu instalacji.Z Cloud Code, jak mogę zapytać o instalacje pasujące do zestawu użytkowników?

Parse Server nie pozwoli mi kwerendy kolekcji Instalacja z Kodeksem Cloud powrocie następujący błąd:

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. 

Kwerenda w Kodeksie chmura wygląda następująco:

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

Jaka jest właściwa sposób, aby uzyskać listę instalacji dla zestawu użytkowników i wysłać do nich paczki?

Próbowałem również uzyskać kod Cloud, aby użyć klucza głównego, dzwoniąc pod numer Parse.Cloud.useMasterKey(); bezpośrednio przed zapytaniem. Brak efektu, a klucz główny nie jest zawarty w nagłówkach zapytań.

+0

Błąd wspomina klienci nie mogą korzystać zapytanie find. Jak wywołujesz funkcję chmury od klienta? –

+0

To wszystko w wywoływaniu funkcji Parse.Cloud.afterSave(). Klient wywołuje serwer w celu zaktualizowania obiektu i próbuję uruchomić to zapytanie po zapisaniu. Zapytanie nie jest uruchamiane bezpośrednio przez klienta. –

+0

Dziwne, że otrzymujesz wtedy błąd klienta. Czy możesz umieścić zapytanie w innym miejscu niż wywołanie zwrotne? –

Odpowiedz

4

Jest to spowodowane tym, że Parse.Cloud.useMasterKey() jest przestarzałe od wersji Parse-serwer w wersji 2.3.0. W zapytaniu musisz teraz użyć wartości useMasterKey: true.

Np

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

Dzięki za pomoc! To rozwiązało mój problem. –

+1

Witam pana! – Cliffordwh