我的 Firebase 中有如下数据(这是一个基于 Javascript 的 Web 应用程序):
bids
400
1
50.00
2
60.00
401
1
55.00
2
65.00
400和401指的是拍卖号码。 1 和 2 指的是每次拍卖中的个别拍品。第三级是投标金额。
我通过观察 child_added 向用户显示所有出价的列表,如下所示:
dataRef.child('bids').child(auction).child(lotno).on('child_added', function(data){...});
当应用程序首次加载时,尚未分配拍卖或批号。而且随着拍卖的进行,拍品号(甚至可能是拍卖编号)会发生多次变化。
在这种情况下,我对如何维护实时出价列表感到困惑。当应用程序首次加载时,我的变量“auction”和“lotno”的值为“未定义”,因此我从 Firebase 收到“无效路径”错误。
我也不确定如果变量(以及路径)发生变化,我的 child_added 会发生什么。 child_added 是否会加载新路径上的所有现有数据,并从该点开始监视新的子项?
关于如何处理应用程序的初始状态(变量尚未填充)有什么建议吗?
由于您正在像这样构建查询:
dataRef.child('bids').child(auction).child(lotno).on(...
您将必须创建附加一个新的侦听器(然后将off
现有的侦听器)每次之一action
or lotno
变量发生变化。
听起来好像只能有一个当前批次一次,这可能会使将其建模到数据模型中更有用:
bids
400
1
50.00
2
60.00
401
1
55.00
current
65.00
然后,一旦当前批次的投标结束,您可以将其“退出”到正确的批次编号位置,并使下一个批次成为current
。有了这样的数据结构,你的拍卖听众就可以一直在观看current
:
dataRef.child('bids').child(auction).child('current').on(...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)