首页 > 解决方案 > 如何遍历 Firebase 实时数据库?

问题描述

我正在尝试从 Firebase 实时数据库中迭代我的数据

数据库

但我的代码总是返回 null

任何帮助将不胜感激,如果有一种方法可以根据用户名将数据存储在 Arraylist 中,那就太好了。

谢谢

FirebaseDatabase.getInstance().getReference().child("INFO").addListenerForSingleValueEvent(new ValueEventListener()
{
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String Age = ds.child("Age").getValue(String.class);
            String Job = ds.child("Job").getValue(String.class);
           Log.d("TAG", Age + " " + Job);
        }

    }

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

标签: androidfirebaseloopsfirebase-realtime-database

解决方案


如果字段名称中有任何额外的“:”而不是将其删除,那么您可以使用带有 Age 和 Job 字段的模型类或使用 HashMap 访问数据。

FirebaseDatabase.getInstance().getReference().child("INFO").addListenerForSingleValueEvent(new ValueEventListener()
{
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
          HashMap<String,String> map= (HashMap<String, String>) ds.getValue();

          String Age = map.get("Age");
          String Job =  map.get("Job");
          Log.d("TAG", Age + " " + Job);
        }

    }

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

推荐阅读