当前位置: 首页 > 知识库问答 >
问题:

无法从firebase数据库快照读取对象

程振濂
2023-03-14

我试图将值从数据库快照放入类对象的映射活动代码。

//reading stations from database
List<Stations> stations;
 mDatabase = FirebaseDatabase.getInstance().getReference().child("STATIONS");

    ValueEventListener stationListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            //found out that error is here
            for(DataSnapshot stationsSnapshot: dataSnapshot.getChildren()){
                stations.add(stationsSnapshot.getValue(Station.class));
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            Log.i("Station Read[ERROR]",databaseError.getMessage());
        }
    };
    mDatabase.addListenerForSingleValueEvent(stationListener);

我的车站类别代码和位置类别代码。

在从firebase获取的地图上标记位置的代码。

    //Placing all station data on Maps
    for(int i=0 ; i<stations.size() ; i++){
        LatLng location = new LatLng(stations.get(i).getLocation().getLatitude(),
                stations.get(i).getLocation().getLongitude());
        mMap.addMarker(new MarkerOptions().position(location).title(stations.get(i).getName()));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(location));
    }

共有2个答案

宰坚
2023-03-14

1-对象Stations必须像Firebase中的对象一样

public class Stations{

public Location location;
public String name

//..getter and setter

public static class Location{
public double latitude;
public double  longitude;

//..getter and setter

}
}

这些字段必须是公共的

2-初始化arraylist

List<Stations> stations=new Arraylist();
戚育
2023-03-14

初始化电台列表。

List<Stations> stations= new ArrayList<>();

添加标记的逻辑对我来说似乎没问题。正如穆明所说,只要在正确的地方添加它,就可以了。

 类似资料:
  • 因此,我尝试拍摄数据库的快照,并添加带有子项的数组字符串中的项。 我的set和get java文件如下所示 但是,当我的程序到达dataQuery方法并尝试获取和设置名称和成分时,它会崩溃。有人能解释一下我做错了什么,以及是否有更好的方法来使用数据库快照来做到这一点吗? 进程:in.tvac.akshayejh.firebasesearch,PID:24798java.lang.NullPoint

  • 我正在尝试优化我的应用程序在Firesbase上的读取次数,并回顾我使用快照监控实时更改的方式。假设我有一个快照,返回10个最新文档,如下所示: 医生说 每次查询结果更改时(即添加、删除或修改文档时),快照处理程序都会收到一个新的查询快照。 这是否意味着每次查询更改时,我都将被计费10次读取?在这个例子中,如果添加了一个新城市(所以使用最新的“日期添加”,所以在查询中排在第一位),它将是1(只是新

  • 我试图从Firebase数据库中读取数据,我已经到处阅读和查找,但我已经走到了死胡同。 这就是我所做的一切。 依赖项: 实现'com.google.firebase: Firebase存储: 9.2.1' 实现'com。谷歌。firebase:firebase数据库:9.2。1' 实现'com。谷歌。firebase:firebase授权:9.2。1' 实现'com。谷歌。火基:火基核心:9.2。

  • 我已经花了几个小时阅读产品分支中的0和1。请在Firebase数据库有经验的人帮助我:(

  • 我正在尝试获取我的用户名,并在应用程序打开时向他/她问好。但我无法根据某个用户的uid获取数据。当我运行应用程序时,祝酒词从未真正出现。 数据库结构 密码

  • 我们定期备份我们的集群,并且每天在aws s3上存储模式和快照备份。 不知何故,我们丢失了所有数据,在从备份中恢复数据时,我们能够恢复模式,但在将快照文件复制到/var/lib/cassandra/data目录时,它没有在表中显示数据。 复制数据后,我们已经完成了nodetool刷新- keyspace表,但仍然没有工作。 你能帮忙吗?