gpt4 book ai didi

java - 从 firebase 检索数据并创建标记

转载 作者:行者123 更新时间:2023-12-02 03:12:44 25 4
gpt4 key购买 nike

我想问一下如何从firebase中检索数据,即获取特定数据。我的 firebase 数据库看起来像这样。 My firebase database is look like this. 。我想检索圆圈中的数据。

完整的 firebase 看起来像这样。 enter image description here

我尝试的是使用 datasnapshot 和 value eventlistener 从 firebase 调用数据。

private void getMarkerFromDb()
{
String userId = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference dataMarker = FirebaseDatabase.getInstance().getReference();

if (getIntent()!=null) {

lrpTest = (LRP_model) getIntent().getSerializableExtra("lrp");

DatabaseReference routeRef = dataMarker.child("LRP")
.child(userId)
.child("route_models");
routeRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (int counter =0; counter<dataSnapshot.getChildrenCount();counter++) {
for (DataSnapshot ss : dataSnapshot.child("route_models").getChildren()) {
double latitude = ss.child("rtLat").getValue(Double.class);
double longitude = ss.child("rtLng").getValue(Double.class);
LatLng loc = new LatLng(latitude, longitude);
mMap.addMarker(new MarkerOptions().position(loc).title("test")).setIcon(BitmapDescriptorFactory.fromResource(R.drawable.ic_action_pole));
}
}
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});
}
}

输出没有显示任何内容。

最佳答案

更改此:

            routeRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (int counter =0; counter<dataSnapshot.getChildrenCount();counter++) {
for (DataSnapshot ss : dataSnapshot.child("route_models").getChildren()) {
double latitude = ss.child("rtLat").getValue(Double.class);
double longitude = ss.child("rtLng").getValue(Double.class);
LatLng loc = new LatLng(latitude, longitude);
mMap.addMarker(new MarkerOptions().position(loc).title("test")).setIcon(BitmapDescriptorFactory.fromResource(R.drawable.ic_action_pole));
}
}
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

进入此:


DatabaseReference routeRef = dataMarker.child("LRP")
.child(userId);

routeRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot ss : dataSnapshot.getChildren()) {
for (DataSnapshot datas : ss.child("route_models").getChildren()) {
double latitude = datas.child("rtLat").getValue(Double.class);
double longitude = datas.child("rtLng").getValue(Double.class);
LatLng loc = new LatLng(latitude, longitude);
mMap.addMarker(new MarkerOptions().position(loc).title("test")).setIcon(BitmapDescriptorFactory.fromResource(R.drawable.ic_action_pole));
}
}
}
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

更改对节点 userId 的引用,然后在其内部迭代两次以访问 route_models 属性。

关于java - 从 firebase 检索数据并创建标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56983519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com