Firebase GeoFire Android填充了一个listView

问题描述 投票:0回答:1

因此,使用GeoFire,我能够将所有返回的密钥放入List中。

 ArrayList<String> arrayList = new ArrayList();

    GeoQuery geoQuery = geoFire.queryAtLocation(new GeoLocation(37, -133), 1.6);
    geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
        @Override
        public void onKeyEntered(final String key, GeoLocation location) {
            arrayList.add(key);   
        ...

我想我应该像这样添加听众。如何获取BizName来填充listView?我很好,我有键,但我想要与这些键相关的值。

mRootRef.child("Businesses").child(key).addListenerForSingleValueEvent(new ValueEventListener(){
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    Data data = dataSnapshot.getValue(Data.class);
                    data.getBizName();

                }
firebase firebase-realtime-database geofire
1个回答
0
投票

您确实需要为要显示的每个键加载其他信息。每个键需要(最多)一个addListenerForSingleValueEventaddValueListener。请注意,这并不像许多开发人员认为的那样昂贵,因为请求可以通过Firebase对服务器保持打开的单个连接进行流水线操作。见Speed up fetching posts for my social network app by using query instead of observing a single event repeatedly

像这样加载您自己的数据也意味着您需要在加载信息和视图之间定义自己的适配器。请记住,键可能会移入和移出查询范围,因此理想情况下,您应该处理onKeyEnteredonKeyExited

© www.soinside.com 2019 - 2024. All rights reserved.