如何管理应用程序中到 Firebase 数据的动态路径
How to manage dynamic path in app to Firebase data
我的 Firebase 中的数据看起来像这样(这是一个基于 Javascript 的网络应用程序):
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" 的值为 "undefined",因此我从 Firebase 收到 "invalid path" 错误。
我也不确定如果变量(以及路径)发生变化,我的 child_added 会发生什么。 child_added 是否会在新路径加载所有现有数据,并从该点开始观察新的子数据?
关于如何处理尚未填充变量的应用初始状态的任何建议?
由于您是这样构建查询的:
dataRef.child('bids').child(auction).child(lotno).on(...
每次 action
或 lotno
变量之一发生变化时,您都必须创建附加一个新的侦听器(并 off
现有的侦听器)。
听起来一次只能有一个当前批次,这可能会使将其建模到您的数据模型中更有用:
bids
400
1
50.00
2
60.00
401
1
55.00
current
65.00
然后,一旦当前拍品的出价完成,您就可以"retire"将其放入适当的拍号位置,并让下一批拍品成为current
。使用这样的数据结构,您的拍卖听众可以一直在观看 current
:
dataRef.child('bids').child(auction).child('current').on(...
我的 Firebase 中的数据看起来像这样(这是一个基于 Javascript 的网络应用程序):
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" 的值为 "undefined",因此我从 Firebase 收到 "invalid path" 错误。
我也不确定如果变量(以及路径)发生变化,我的 child_added 会发生什么。 child_added 是否会在新路径加载所有现有数据,并从该点开始观察新的子数据?
关于如何处理尚未填充变量的应用初始状态的任何建议?
由于您是这样构建查询的:
dataRef.child('bids').child(auction).child(lotno).on(...
每次 action
或 lotno
变量之一发生变化时,您都必须创建附加一个新的侦听器(并 off
现有的侦听器)。
听起来一次只能有一个当前批次,这可能会使将其建模到您的数据模型中更有用:
bids
400
1
50.00
2
60.00
401
1
55.00
current
65.00
然后,一旦当前拍品的出价完成,您就可以"retire"将其放入适当的拍号位置,并让下一批拍品成为current
。使用这样的数据结构,您的拍卖听众可以一直在观看 current
:
dataRef.child('bids').child(auction).child('current').on(...