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

Terminal showing ReSubScription:{} when using LiveQuery in parse_server_sdk_flutter

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

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

我在终端中收到的是:“ReSubScription:{}”。
当数据库中我的 class 之一获得新的 record/entry 时,我正在尝试捕获事件。 如果需要,我可以安排一个演示代码库,但请帮助我解决这个问题。

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

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

请看看我对 livequery 做错了什么。将不胜感激 pointers/guidance.

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

我的测试程序:

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

问题与以下代码有关:

    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,这就是您的事件未被触发的原因。然后设置 adminId 并更新对象。在那一刻,您的输入事件应该被触发。请收听所有不同的事件(创建、输入、更新、离开、删除),您会看到它正在发生。