Java 如何在firebase中获取值

Java 如何在firebase中获取值,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我有一个如下所示的数据库: myRef.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot uniqueKey:dataSnapshot.getChildren()) { for (DataSnapshot keys

我有一个如下所示的数据库:

myRef.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot uniqueKey:dataSnapshot.getChildren()) {
            for (DataSnapshot keysiswa:uniqueKey.getChildren()) {
                for (DataSnapshot valuesiswa:keysiswa.child("nama_siswa").getChildren()) {
                    String c = valuesiswa.getValue().toString();
                    Log.i(TAG,c);
                }
            }
        }
    }

我的代码是这样的:

myRef.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot uniqueKey:dataSnapshot.getChildren()) {
            for (DataSnapshot keysiswa:uniqueKey.getChildren()) {
                for (DataSnapshot valuesiswa:keysiswa.child("nama_siswa").getChildren()) {
                    String c = valuesiswa.getValue().toString();
                    Log.i(TAG,c);
                }
            }
        }
    }
我想取“nama_siswa”的值,但在logcat中什么都没有发生。我的代码有什么问题?

请尝试此代码

        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("siswa");
    reference.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Log.d("Name:",dataSnapshot.getValue(User.class).name); // define your pojo class
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

要获取nama_siswa属性的值,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference siswaRef = rootRef.child("siswa");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String nama_siswa = ds.child("nama_siswa").getValue(String.class);
            Log.d("TAG", nama_siswa);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
siswaRef.addListenerForSingleValueEvent(valueEventListener);
输出将是:

chandra
coba

是这些用户吗?感谢您的回复,当我使用时您可以解释一下吗?您已经有了文档,不接受sb的回答并假装解释是非常粗鲁的。它从firebase数据库读取数据作为子节点中的siswa节点。