setPriority()删除优先级

时间:2012-12-18 00:35:59

标签: firebase

我正在使用有序数据并遇到了这个问题:

我使用push()将项目添加到某个位置,并将其优先级设置为创建日期(以毫秒为单位),以便按日期排序。当我尝试更改项目的顺序时,我会找到下一个或前一个(如果没有下一个)项目并获得它的优先级,然后我添加或减去一个并将移动项目的优先级设置为结果。我获取优先级确定,但是当我调用setPriority()时,该项目失去优先级。使用图形调试器导出项目不会为每个移动的项目返回优先级。返回未移动项目的正确优先级。

一些代码:

/* id is the id of the div being moved
using jquery ui's sortable
div id's are formed like "item_" + firebaseref.name()
*/
name = id.substr(id.indexOf('_') + 1);
id2 = $('#' + id).next().attr('id');
if(id2){
    name2 = id2.substr(id2.indexOf('_') + 1);
    itemRef = rootRef.child('path/to/my/items/'+name2);
    itemRef.once('value', function (dataSnapshot){
        var pr = Number(dataSnapshot.getPriority()),
        myRef = rootRef.child('path/to/my/items/'+name);
        myRef.setPriority(pr - 1); // tried this or toString as below
    });
} else {
// try previous item
    id2 = $('#' + id).prev().attr('id');
    if(id2){
        name2 = id2.substr(id2.indexOf('_') + 1);
        itemRef = rootRef.child('path/to/my/items/'+name2);
        itemRef.once('value', function (dataSnapshot){
            var pr = Number(dataSnapshot.getPriority()) + 1,
            myRef = rootRef.child('path/to/my/items/'+name);
            myRef.setPriority(pr.toString());
        });
    }
}

我有一个'child_moved'监听器,但我现在没有使用它。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这是Firebase中的一个错误。我目前还不确定原因,但似乎没有正确保存大于某个尺寸的数字。完成后,我们会调查并更新此答案。

更新:此错误已解决。再试一次!