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);
}
1 回答
Firebase的设计不是基于某些可见索引,而是基于数据库when queried中的条目 .
orderByChild
,orderByKey
,或orderByValue
因此,如果您要对Firebase中的值重新排序,则应为每个项目赋予'index'值并调用
orderByValue('index')
几行代码可以升级当前数据库项以使用此索引: