使用AngularFire或Vanilla JavaScript取消/添加到Firebase对象的前面

时间:2014-06-24 14:07:39

标签: angularjs firebase angularfire

我有一个存储在Firebase上的数组/对象,我使用AngularFire的$add函数添加项目。 $add相当于在常规JavaScript数组上使用.push。您指定的值将添加到数组的末尾。

无论如何将我的值添加到存储在Firebase上的此数组/对象的前面?在vanilla JavaScript中与.unshift做同样事情的东西?

我更喜欢AngularFire解决方案,但如果没有,那么vanilla JavaScript解决方案就可以了。

1 个答案:

答案 0 :(得分:3)

由于数据未存储在数组中(在下周的AngularFire 0.8之前),并且js中的对象未排序,因此技术上没有前/后的概念。这可以通过对数据键进行排序或使用优先级在Firebase中实现。 See ordered data了解有关此主题的更多信息。

在AngularFire中,优先级作为$ priority存储在记录中。您可以在保存记录之前设置此值以控制其排序顺序:

var data = $firebase(ref);
data.$on('loaded', function() {
   data['foo'].$priority = 99;
   data.$save('foo');
});

要将项目放在列表中的第一位,您只需为其分配的优先级低于其他记录。