Java 调用onChildChanged()方法时,将firebase子节点移到顶部
这是我的firebase数据库结构。。。 当标记为绿色的节点下的数据发生更改时,我希望将标记为红色的节点移动到消息下的顶部。如何做到这一点 这是我的密码Java 调用onChildChanged()方法时,将firebase子节点移到顶部,java,android,firebase,firebase-realtime-database,nodes,Java,Android,Firebase,Firebase Realtime Database,Nodes,这是我的firebase数据库结构。。。 当标记为绿色的节点下的数据发生更改时,我希望将标记为红色的节点移动到消息下的顶部。如何做到这一点 这是我的密码 ref.addChildEventListener(new ChildEventListener() { //ref is reference to messages node public void onChildAdded(DataSnapshot dataSnapshot, String previousKey)
ref.addChildEventListener(new ChildEventListener() { //ref is reference to messages node
public void onChildAdded(DataSnapshot dataSnapshot, String previousKey)
{
}
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
//Here i need to implement this function
}
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
public void onCancelled(FirebaseError firebaseError) { }
});
firebase控制台中的键始终按字母顺序排列,您无法更改
但您可以做的是创建一个用于存储数据的键,在该键下可以正确排序。例如,时间戳键。您可以共享任何引用或示例吗?这可以使用pushid实现吗?这取决于您的项目,但如果您的键是时间戳,则需要将数据保存在此项下。否则,您可以完全创建一个新节点,并将其称为“NewestMessage”,然后在保存新数据时覆盖此处的数据。如果任何用户在photoUrl中进行了编辑,则其用户节点应位于顶部。或者,如果我们按时间戳进行设置,那么节点将按从最新到旧时间的降序排列。我认为跟踪这一点的最佳方法是创建一个新节点来存储最新消息,然后每当用户编辑其photourl时,该节点将用其id和时间戳进行更新,然后每次进行新编辑时都会被覆盖