我如何在firebase中获得价值

时间:2018-05-07 06:14:20

标签: java android firebase firebase-realtime-database

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

my database

我的代码是这样的:

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中没有任何反应。我的代码出了什么问题?

2 个答案:

答案 0 :(得分:0)

试试这段代码。

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

        }
    });

答案 1 :(得分:0)

要获取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