在Firebase中切换孩子的孩子

时间:2018-06-05 02:10:52

标签: java android firebase firebase-realtime-database

Firebase image

为了帮助您理解,我根据数据库参考的孩子提供了一个简单的键名和值的图像。

我正在寻找切换两个孩子的值+键

例如,Child 0有一个新的子项“keyOne”,其中键为“keyOne”,值为“valueOne”......等于子项1,2和3。

-

如何切换“0”和“1”的孩子?

通过切换孩子,我的意思是我想结束。

-

0 -> keyOne: valueOne

1 -> keyZero: valueZero

希望你们明白我的意思。如果你现在没有,我会给它最后一枪!

我正在寻找一个孩子的键+值组合与另一个孩子的键+值组合。

谢谢!

1 个答案:

答案 0 :(得分:0)

假设currentMembers节点是Firebase根目录的直接子节点,您的数据库如下所示:

enter image description here

要实现您的目标,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference currentMembersRef = rootRef.child("currentMembers");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String valueZero =  dataSnapshot.child("0").child("keyZero").getValue(String.class);
        String valueOne =  dataSnapshot.child("1").child("keyOne").getValue(String.class);

        dataSnapshot.child("0").child("keyZero").getRef().setValue(valueOne);
        dataSnapshot.child("1").child("keyOne").getRef().setValue(valueZero);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
currentMembersRef.addListenerForSingleValueEvent(valueEventListener);

结果将是:

enter image description here