アンドロイドのfirebaseから子供の価値の子供を得る方法は?
ZNAME値の取得方法は?最初はキー(Ex :: Here ZONE_1)を比較し、ZNAMEを取得する必要があります。事前に感謝...
アンドロイドのfirebaseから子供の価値の子供を得る方法は?
ZNAME値の取得方法は?最初はキー(Ex :: Here ZONE_1)を比較し、ZNAMEを取得する必要があります。事前に感謝...
データベース内の値にアクセスするには、その場所にDatabaseReference
を作成します。 /ZONES/ZONE_1/ZNAME
に/ZONES/ZONE_1
zone1NameRef
ポイントに/ZONES
zone1Ref
ポイントへ
zonesRef
ポイント:このスニペットで DatabaseReference zonesRef = FirebaseDatabase.getInstance().getReference("ZONES");
DatabaseReference zone1Ref = zonesRef.child("ZONE_1");
DatabaseReference zone1NameRef = zone1Ref.child("ZNAME");
:ここでは、データベース内の場所への3つの参照があります
詳細については、Firebase documentation on getting a database referenceを参照してください。
各参照にリスナーを接続して、その位置で値を取得できます。例えば、/ZONES/ZONE_1/ZNAME
の値を取得する:読み出し動作のこのタイプの詳細については
zone1NameRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.i(TAG, dataSnapshot.getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "onCancelled", databaseError.toException());
}
});
を、Firebase documentation on reading valuesを参照してください。
代わりに/ZONES/ZONE_1
でリッスンすると、すべてのプロパティを持つノード全体のDataSnapshot
が表示されます。あなたはそれからZNAME
を取得するためにDataSnapshot.child()
を使用します。
zone1Ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.i(TAG, dataSnapshot.child("ZNAME").getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "onCancelled", databaseError.toException());
}
});
もう一つレベルアップし、あなたはすべてのゾーンであなたのスナップショットを取得しますれ、/ZONES
上で聴くことができます。これは複数の子を扱うので、あなたはDataSnapshot.getChildren()
でそれらを介してループする必要があります。
zonesRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot zoneSnapshot: dataSnapshot.getChildren()) {
Log.i(TAG, zoneSnapshot.child("ZNAME").getValue(String.class);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "onCancelled", databaseError.toException());
}
});
これに関する詳細については、Firebase documentation on listening for lists of dataを参照してください。
最後に、あなたが"ZCODE": "ECOR"
でゾーンを見つけるために、例えば、特定のゾーンを見つけるために照会することがあります:
Query zonesQuery = zonesRef.orderByChild("ZCODE").equalTo("ECOR");
zonesQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot zoneSnapshot: dataSnapshot.getChildren()) {
Log.i(TAG, zoneSnapshot.child("ZNAME").getValue(String.class);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "onCancelled", databaseError.toException());
}
});
が、この詳細については、Firebase documentation on sorting and filtering dataをお読みください。
これまでに表示するコードはありますか? useは単に任意のデータベースリファレンスで 'child()'を2回呼び出すことができます –