我有一个使用GoogleMaps
功能的应用程序。所以在我的应用程序中,我能够绘制两个标记之间的路径,并在地图上设置常规标记。
我拥有的数据库结构是:
为了解决这个问题,我有一个数据库结构如下:
问题:是否可以使用markerId
节点中的密钥query
markers
节点中的相应标记?
答案 0 :(得分:2)
试试这个:
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference reference = database.getReference("routes").child("-KzdUTraH1BodJMuEnSu").child("markerId");
ValueEventListener ref=new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data : dataSnapshot.getChildren()){
String x=data.getKey();
DatabaseReference datas=database.getReference().getInstance().child("markers");
datas.orderByKey().equalTo(x).addValueEventListener(new ValueEventListener()){
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//code here
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
};
reference.addValueEventListener(ref);
在第一个查询中,您要查询位置markerId
,然后获取for loop
内的密钥并使用另一个查询中的密钥检查它是否与节点内的密钥相同{ {1}}