0
私はGoogleMaps
機能を使用するアプリケーションを持っています。私のアプリケーションでは、2つのマーカーの間にパスを描き、マップ上に通常のマーカーを設定することができます。Android - キーを使用してノードを照会する(Firebase)
私はデータベースの構造は以下の通りである:
:- 一方の経路は、
- 一つのマーカーは、これを処理するための一つの経路
次のようにIは、データベースの構造を有するを有する複数のマーカーを有することができます
質問:markerId
ノードからquery
ノードのキーをmarkers
ノードの適切なマーカーに使用することはできますか?その後、あなたはfor loop
内部のキーを取得し、それは同じキーであるかどうかを確認するために、他のクエリでキーを使用し、最初のクエリで
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
に照会されます。
意味を変更することなく、コードを少し整理しました。私がよく分からないことの1つは 'dataSnapshot.getChildren()'のループです。ネストされたリスナーの後にループが終了することを意味すると思いますが、それは正しいですか? –
@FrankvanPuffelenはい、それは本当です、私はそれを修正しました。ありがとうございました! –
@PeterHaddad、あなたの答えに感謝します。簡単な質問:これは 'マーカーノード 'から' one'マーカーを取得するだけですか、それとも3つすべてを取得しますか? – JDoe