Java 如何在firebase中获取两个或多个节点的子节点

Java 如何在firebase中获取两个或多个节点的子节点,java,android,firebase,Java,Android,Firebase,我正在寻找一种有效的方法,使用单个valueEventListener获取所有节点及其子节点,并将它们存储在两个不同的arraylists中 这是我的火力基地。 这就是我所做的 ValueEventListener allCodesListener = new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) {

我正在寻找一种有效的方法,使用单个
valueEventListener
获取所有节点及其子节点,并将它们存储在两个不同的
arraylists

这是我的火力基地。

这就是我所做的

 ValueEventListener allCodesListener = new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                // This method is called once with the initial value and again
                // whenever data at this location is updated.
                for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                    CouponObj post = postSnapshot.getValue(CouponObj.class);
                    list.add(new CouponObj(post.getCode(), post.getDetail(), post.getExpirationDate(), post.getLikes(), post.getStatus(), post.getSuccessRate(), post.getUsers_today()));
                    Log.e("Get Data", post.getCode());
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        };
    myRef.child("allcodes").addValueEventListener(allCodesListener);
在这个
监听器中
我只得到
allcodes
的子项。现在我可以重复上面相同的代码,创建另一个侦听器,获取更多应用程序的所有子项,但我想知道是否有更好的方法


在这个场景中,我在
firebase
上有多个节点,我想把它们都放在
arraylist
中并存储在
sqlLite
中,我必须为此编写许多侦听器。问题是有两个以上的节点及其子节点。我想在single
listener

中一次性获得所有这些值,使用相同的onDataChange方法,您可以对另一个子对象进行另一次引用,并在其中进行迭代,以将值添加到另一个ArrayList中嵌套的listener中没有任何错误。好的,谢谢。目前,我正在使用多个侦听器来获取数据。