0

我遵循了文档中的所有步骤,但是这个函数永远不会被调用:

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

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

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

更新
我正在共享一个最小应用程序的 git repo 链接以演示我所做的事情。这是链接

请看看我在 livequery 上做错了什么。将不胜感激任何指针/指导。

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

我的测试程序:

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

1 回答 1

1

问题与以下代码有关:

    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();
    }

请注意,首先您创建没有 no 的对象,adminId这就是您的事件没有被触发的原因。然后设置adminId并更新对象。在那一刻,您的 enter 事件应该被触发。请听所有不同的事件(创建、输入、更新、离开、删除),你会看到它发生。

于 2021-01-05T00:14:02.183 回答