如何从firebase实时数据库重新排序数据

Sme*_*eff 5 java android firebase firebase-realtime-database

我想使用拖放手势重新排序Recyclerview中的数据,但不知道如何重新命令firebase数据库中的数据.

Nic*_*ker 6

Firebase的设计不是基于某些可见索引进行排序,而是根据查询时数据库中的条目进行排序.

orderByChild,orderByKeyorderByValue

因此,如果要对Firebase中的值重新排序,则应为每个项目指定一个"索引"值并调用 orderByValue('index')


几行代码可以升级当前数据库项以使用此索引:

int index = 0;
mDatabase.child("data").addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) {
        Log.d(TAG, "onChildAdded:" + dataSnapshot.getKey());

        // A new comment has been added, add it to the displayed list
        Data data = dataSnapshot.getValue(Data.class);
        index++;
        Map<String, Object> childUpdates = new HashMap<>();
        childUpdates.put("/data/" + dataSnapshot.getKey()+"/index", index);
        mDatabase.updateChildren(childUpdates);
    }
Run Code Online (Sandbox Code Playgroud)