自定义子更新正在插入中间.Firebase 3.0

时间:2016-12-03 10:01:07

标签: javascript firebase firebase-realtime-database

我是Firebase的新手。我有一个与firebase同步运行的轮播。我有一个小节点脚本,它将一个新项目添加到我的firebase ref.I不知道由于某种原因我尝试插入的节点正在获取在中间而不是在最后添加。我不知道我做错了什么。任何帮助对我都有用。这是我的节点脚本的一部分,它将节点插入我的参考

var trendRef=firebase.database.ref("my-ref");
trendRef.child("OTR-124").update({<myObj>}); 

注意:我正在添加一个timeStamp字段作为我的对象的一部分,它将经典的javascript时间戳作为值(这是让我更加怀疑的部分)

1 个答案:

答案 0 :(得分:1)

Firebase数据库默认按键按字典顺序排序数据。因此,如果您已经有了孩子NPR-431PYT-987,那么您的新生儿最终会在他们之间:

NPR-431
OTR-124
PYT-987

如果您的数据包含您要订购的媒体资源,则可以使用Firebase queries按照所需顺序返回项目:

trendRef.orderByChild("propertyOnWhichToOrder").on(...

但是,如果您希望按时间顺序排列密钥,则需要确保密钥值按时间顺序和字典顺序增加。这听起来比较困难,因为Firebase有一个内置方法可以为appending items to a list生成这样的密钥。

trendRed.push({<myObj>});

这将使用自动生成的密钥将项目附加到列表的末尾,该密钥保证既有序也有唯一。