LiveQuery Parse服务器订阅不会触发事件

问题描述 投票:0回答:1

我一直在尝试使用订阅在Parse服务器上创建实时查询,但是似乎未触发某些事件。

我记录订阅收到的每个事件,并且我知道'open'被触发。但是,当我更改应该影响查询结果的数据时,我没有收到任何其他事件。我在Sashido Parse服务器上的CanvasVersion和Sticky后端启用了实时查询类。

这是客户代码:

const relation = this.canvasVersion.stickies;
const query = relation.query();
query.equalTo("segment", this.id);

this.segmentUpdatedSubscription = await query.subscribe();

this.segmentUpdatedSubscription.on('open', () => {
    console.log('Subscription opened');
})

this.segmentUpdatedSubscription.on('error', (error) => {
    console.log('error', error);
})

this.segmentUpdatedSubscription.on('create', (sticky) => {
    console.log('Created: ' + sticky);
});

继续“更新”,“输入”,“删除”,“离开”和“关闭”,其中this.canvasVersion.stickies是canvasVersion和Sticky对象之间的关系。

解析服务器使用以下代码初始化:

static initialize() {
   Parse.initialize(environment.parse.appId, environment.parse.appKey);
   (Parse as any).serverURL = environment.parse.serverURL;
}

有人知道为什么不触发这些事件以及如何解决吗?预先感谢您的帮助。

parse-platform subscription livequery
1个回答
0
投票

解析订阅(Parse LiveQuery)不支持关联订阅。

https://github.com/parse-community/parse-server/issues/5610#issuecomment-495277400

使用有条件的常规订阅方式。

const query = Parse.Object.extend('Sticky').query();
query.equalTo("segment", this.id);

const segmentUpdatedSubscription = await query.subscribe();
© www.soinside.com 2019 - 2024. All rights reserved.