在firebase中获取多个节点

时间:2017-12-29 16:58:51

标签: android firebase-realtime-database

我使用Android StudioFirebase开发的应用程序出现问题。 我想从firebase获取数据并将其与来自firebase的其他数据进行比较,并在列表视图中显示它。 我想要的数据是下图中的字符串。

image of firebase

这里的问题是,我不知道如何从数据库中获取多个字符串。

这是我一直在尝试的代码:

public class testActivity extends AppCompatActivity {

private DatabaseReference applydatabase;

String app;
String applied;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);

    app = getIntent().getExtras().getString("id");

    applydatabase = FirebaseDatabase.getInstance().getReference().child("Apply").child(app).child("Applyid");
    applydatabase.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            applied = dataSnapshot.getValue().toString();
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });


   }
}

1 个答案:

答案 0 :(得分:0)

您可以使用DataSnapshot.getChildren()获取子节点并循环遍历它们。

applydatabase = FirebaseDatabase.getInstance().getReference().child("Apply").child(app).child("Applyid");
applydatabase.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String first = null, second = null;
        for (DataSnapshot child: dataSnapshot.getChildren()) {
            if (first == null) {
                first = child.getValue(String.class);
            } else if (second == null)
                second = child.getValue(String.class);
            }
        }
        // TODO: compare first and second
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException(); // don't ignore errors
    }
});