在 parse_server_sdk_flutter 中使用 LiveQuery 时显示 ReSubScription:{} 的终端

问题描述

我遵循了 documentation 中的所有步骤,但从未调用过此函数

subscription.on(LiveQueryEvent.create,(value) {});

我在终端中收到的只是:“ReSubScription:{}”。
当我在数据库中的一个类获得新记录/条目时,我试图捕获该事件。 如果需要,我可以安排演示代码库,但请帮助我解决这个问题。

PS:我在有状态小部件的 initState() 方法调用此 subscription.on() 方法,而不是在 main() 中。

更新
我正在分享一个最小应用程序的 git repo 链接来演示我做了什么。这是link

请看看我用 livequery 做错了什么。如有任何指点/指导,我们将不胜感激。

第二次更新
请注意,我已经硬编码了 adminId(登录管理员的 objectId)。请检查 Todo

我的测试程序:

  1. 使用 Parse Dashboard 从后端数据库手动创建用户。请保留用户名 = 电子邮件
  2. 打开应用。单击管理按钮。转到 AdminLogin 页面并输入您的电子邮件和密码。
  3. 如果您成功,应用将导航到下一个白屏。这确认身份验证已成功完成。
  4. 再次打开应用。单击用户按钮。转到用户表单。
  5. 输入姓名并点击订阅者按钮。这将在数​​据库中创建一个名为“Subscribers”的新类并添加列“adminId”和“name” (请在代码中硬编码 adminId,因为您已经知道了)
  6. 现在再次打开应用程序并转到管理员并再次登录以移动到控制面板(白屏)。
  7. 等待 back4app 发送触发器/回调。 (显示 ReSubScription:{})。

解决方法

问题与以下代码有关:

tzi.setbyte(  0,htoi(substr(tzBias,7,2)))  // [  0]  LONG Bias
tzi.setbyte(  1,5,2)))
tzi.setbyte(  2,3,2)))
tzi.setbyte(  3,1,2)))

tzi.setbyte(168,htoi(substr(tzDstBias,2)))  // [168]  LONG DaylightBias
tzi.setbyte(169,2)))
tzi.setbyte(170,2)))
tzi.setbyte(171,2)))

请注意,首先您创建的对象没有 final ParseObject object = ParseObject('Subscribers'); final response = await object.create(); if (response.success && response.count > 0) { final ParseObject record = response.results[0]; record.set('name',name); record.set('adminId',adminId); await record.save(); } ,这就是您的事件未被触发的原因。然后设置 adminId 并更新对象。在那一刻,您的输入事件应该被触发。请收听所有不同的事件(创建、进入、更新、离开、删除),您会看到它发生。