我使用 firebase 数据库来保存我的坐标。
这就是我的数据库的样子:
我通过 token 保存数据:
String token = FirebaseInstanceId.getInstance().getToken();
if (token == null) return;
databaseReference = FirebaseDatabase.getInstance().getReference(token);`
所以我需要访问坐标并向 map 添加标记
我在 onMapReady 方法的 valueEventListener 中执行此操作:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference(FirebaseInstanceId.getInstance().getToken());
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
double allLat = (double) dataSnapshot.child("lat").getValue();
double allLng = (double) dataSnapshot.child("lng").getValue();
mMap.addMarker(new MarkerOptions().position(new LatLng(allLat, allLng)).title("Пользователь"));
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(MapsActivity.this, "Не найдены пользователи", Toast.LENGTH_SHORT).show();
}
});
但它只设置了我的标记,我如何从我的数据库访问所有用户?
最佳答案
您必须在 onDataChange()
内循环遍历您的值:
for(DataSnapshot child : dataSnapshot.getChildren() ){
//get your mulitple markers here
}
关于java - 如何从数据库访问所有用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44434481/