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

时间:2019-10-19 11:33:50

标签: parse-platform subscription livequery

我一直在尝试使用订阅在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;
}

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

1 个答案:

答案 0 :(得分:0)

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

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

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

private void Add1_Click(object sender, EventArgs e)
{
     carrotSales++;
     carrotEarnings = carrotEarnings + 1.50; //error is here
     writeTotal1();
     writeEarnings1();
 }