首页 > 解决方案 > 如何从 Firebase 数据库中检索多个数据?

问题描述

这是我编写的一段代码,但它返回了整个模式。

mDatabase = FirebaseDatabase.getInstance().getReference().child("/News");
    mTitle = (TextView)findViewById(R.id.title_view);

    mDatabase.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            String title=dataSnapshot.getValue().toString();;
            mTitle.setText(title);
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {}
    });

在此处输入图像描述

标签: javaandroidfirebasefirebase-realtime-database

解决方案


要解决这个问题,只需使用以下代码行:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference newsRef = rootRef.child("News");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String desc = ds.child("desc").getValue(String.class);
            String title = ds.child("title").getValue(String.class);
            Log.d(TAG, desc + " / " + title);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
newsRef.addListenerForSingleValueEvent(valueEventListener);

您的 logcat 中的输出将是:

desc1 / title1
desc2 / title2

推荐阅读