我目前正在嘗試使用iOS和Parse-Server進行實時查詢。以下是我的設置爲我解析 - 服務器:Parse-Server LiveQuery不發送事件
...
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'});
...
這是我在iOS應用代碼:
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)")
}
調試的地方,我可以看到用戶正在使用的插座,因爲連接服務器日誌:
info: Create new client: 0
,當我斷開,服務器日誌:
info: Client disconnect: 0
我的問題是,無論何時修改Parse Dashboard中的User對象,Nothings在服務器端登錄,並且客戶端都不會收到任何事件。
有沒有另一種方法來設置它?
非常感謝您的幫助。
更新(17年4月27日):
我仍然還沒有得到這個工作。我不完全確定問題是什麼。我跟着無數的教程無濟於事。
有誰知道如果用戶類不能用於實時查詢?
我也在努力解決您的問題......試了一切,等待一個解決方案。 – Etgar
嗨,看看這個答案https://stackoverflow.com/a/44721816/5928180,它可能會幫助你解決你的問題。 –
嗨,Parse中的「User」類實際上在數據庫中表示爲「_User」,所以無論你在哪裏指定要嘗試接收的ParseObject類,都要確保包含下劃線。 –