0

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

我记录了订阅收到的每个事件,并且我知道触发了“打开”。但是,当我更改应该影响查询结果的数据时,我没有收到任何其他事件。我在 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;
}

有人知道为什么没有触发这些事件以及我该如何解决?在此先感谢您的帮助。

4

1 回答 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();
于 2019-12-24T05:33:33.620 回答