java如何从Firebase检索数据以在地图上创建多个标记
这是我的火力基地看起来像
这是我的地图活动:
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback{
private GoogleMap mMap;
private DatabaseReference mUsers;
Marker marker;
public static final String FIREBASE_URL = "https://xxx.firebaseio.com/";
private Firebase firebase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
Firebase.setAndroidContext(this);
firebase = new Firebase(FIREBASE_URL);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(final GoogleMap googleMap) {
firebase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(com.firebase.client.DataSnapshot dataSnapshot) {
for (com.firebase.client.DataSnapshot s : dataSnapshot.child("marker").getChildren()) {
String lat = s.child("lat").getValue().toString();
String lng = s.child("lng").getValue().toString();
double latitude = Double.parseDouble(lat);
double longitude = Double.parseDouble(lng);
LatLng loc = new LatLng(latitude, longitude);
googleMap.addMarker(new MarkerOptions().position(loc).title(s.child("nama").getValue().toString()));
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
}
错误是
E/MarketPageConfiguration: parse page configuration json error
org.json.JSONException: No value for homeIndex
当我运行它时,它不会显示标记,而且位置仍然会出错。我想我对“孩子”的说法是错误的,并且从中得到了价值,但我不知道如何去理解它
(url链接正常)
# 1 楼答案
要解决此问题,请更改以下代码行:
到
您缺少树中的一个子项,它是
marker
,并且必须在引用中使用此外,从下面的代码行中删除
.child("marker")
:只应是:
另外请注意,您使用的是非常旧的Firebase版本,我建议您更新到最新版本