我正在使用有序数据并遇到了这个问题:
我使用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'监听器,但我现在没有使用它。有什么想法吗?
答案 0 :(得分:0)
这是Firebase中的一个错误。我目前还不确定原因,但似乎没有正确保存大于某个尺寸的数字。完成后,我们会调查并更新此答案。
更新:此错误已解决。再试一次!