2017-04-18 2 views
0

Ich versuche derzeit, Live-Abfragen zu erhalten, die mit iOS und Parse-Server arbeiten. Im Folgenden ist mein Setup für mein Parse-Server:Pars-Server LiveQuery Keine Ereignisse senden

... 

let api = new ParseServer({ 
    databaseURI: databaseUri || constants.DATABASE_URI, 
    cloud: process.env.CLOUD_CODE_MAIN || constants.CLOUD_CODE_MAIN, 
    appId: process.env.APP_ID || constants.APP_ID, 
    masterKey: process.env.MASTER_KEY || constants.MASTER_KEY, 
    serverURL: process.env.SERVER_URL || constants.LOCAL_SERVER_URL, 
    fileKey: process.env.FILE_KEY || constants.FILE_KEY, 
    appName: process.env.APP_NAME || constants.APP_NAME, 
    publicServerURL: process.env.SERVER_URL || constants.LOCAL_SERVER_URL, 
    liveQuery: { 
     classNames: [Parse.User] 
    } 
}); 

... 

let port = process.env.PORT || 1337; 

let httpServer = require('http').createServer(app); 
httpServer.listen(port, function() { 
    console.log('parse_server running on port ' + port + '.'); 
}); 

ParseServer.createLiveQueryServer(httpServer, {logLevel: 'VERBOSE'}); 

... 

Und dies ist mein Code in der iOS-App:

let liveQueryClient = ParseLiveQuery.Client(server: "ws://serverurl/", applicationId: "appID", clientKey: "clientKey") 

let query = PFUser.query()?.whereKey("objectId", equalTo: "ABC123") as! PFQuery<PFUser> 

let subscription = self.liveQueryClient.subscribe(query).handle(Event.updated) { _, user in 
    debugprint("\(user)") 
} 

Debuggen auf lokaler, kann ich der Benutzer sehen, verbindet die Steckdose verwenden, da die Server-Logs:

info: Create new client: 0 

und wenn ich zu trennen, die Server-Logs:

info: Client disconnect: 0 

Mein Problem ist, dass, wenn ich das Benutzerobjekt in Parse Dashboard ändern, nothings auf der Serverseite protokolliert und der Client keine Ereignisse erhält.

Gibt es eine andere Möglichkeit, dies einzurichten?

Vielen Dank für die Hilfe.


Update (04/27/17):

Ich habe noch noch diese Funktion zu erhalten. Ich bin mir nicht ganz sicher, was das Problem ist. Ich habe zahlreiche Tutorials ohne Erfolg verfolgt.

Weiß jemand, ob die Benutzerklasse in Live-Abfragen nicht verwendet werden kann?

+0

Ich kämpfe auch mit Ihrem Problem ... Alles versucht, auf eine Lösung warten. – Etgar

+0

Hallo, Schau dir diese Antwort an https://Stackoverflow.com/a/44721816/5928180, es könnte dir bei deinem Problem helfen. –

+0

Hallo, die "Benutzer" -Klasse in Parse wird tatsächlich in der Datenbank als "_User" dargestellt, also wo immer Sie die Klasse von ParseObject angeben müssen, die Sie erhalten möchten, achten Sie darauf, den Unterstrich einzuschließen. –

Antwort

0

Ich bin nicht sicher über IOS Code aber dieser Teil zB:

liveQuery: { 
    classNames: ["YourColumnNameInDatabase","AnotherColumnName"] 
} 

Achten Sie darauf, zu prüfen, ob Sie mit dem richtigen Klassennamen (Spaltennamen in Db) abonnieren Hope this hilft ein wenig ...

+0

Ich habe es überprüft und es ist alles gut. Sogar versucht, es von '" Parse.User "' zu '" User "' zu ändern, und das hat auch nicht funktioniert. Danke für den Vorschlag. – RPK