首页 > 解决方案 > 在 Firebase 中切换子代

问题描述

Firebase 映像

为了帮助您理解,我根据 Database Reference 的子项提供了一个带有简单键名和值的图像。

我正在寻找切换两个孩子的价值观+钥匙

例如,孩子 0 有新的孩子“keyOne”,键是“keyOne”,值是“valueOne”……等等,孩子 1、2 和 3。

-

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

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

-

0 -> keyOne: valueOne

1 -> keyZero: valueZero

希望你们明白我的意思。如果你现在还没有,我会再试一次!

我正在寻找将孩子的键+值组合与另一个孩子的键+值组合进行切换。

谢谢!

标签: javaandroidfirebasefirebase-realtime-database

解决方案


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

在此处输入图像描述

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

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);

结果将是:

在此处输入图像描述


推荐阅读