如何解决在 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。
我的测试程序:
- 使用 Parse Dashboard 从后端数据库手动创建用户。请保留用户名 = 电子邮件。
- 打开应用。单击管理按钮。转到 AdminLogin 页面并输入您的电子邮件和密码。
- 如果您成功,应用将导航到下一个白屏。这确认身份验证已成功完成。
- 再次打开应用。单击用户按钮。转到用户表单。
- 输入姓名并点击订阅者按钮。这将在数据库中创建一个名为“Subscribers”的新类并添加列“adminId”和“name” (请在代码中硬编码 adminId,因为您已经知道了)
- 现在再次打开应用程序并转到管理员并再次登录以移动到控制面板(白屏)。
- 等待 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
并更新对象。在那一刻,您的输入事件应该被触发。请收听所有不同的事件(创建、进入、更新、离开、删除),您会看到它发生。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。