노드 아래에 Order
노드와 Status
키가 있습니다. Status
의 값이 바뀌 었습니다. 변화가 감지되면 read
부모 Order
노드가 있습니다.하위 노드 값의 변경을 감지하면 상위 개체에 액세스
요점은 Order
노드의 변경 사항을 듣고 싶지 않다는 것입니다. 그러나 Order
노드 아래의 Status
입니다. 가장 적합한 방법은 무엇입니까? 다른 청취자에게 청취자를 배치하는 것이 좋습니까?
final Query qRef = FirebaseDatabase.getInstance().getReference().child("orders").orderByChild("customerId").equalTo(FirebaseAuth.getInstance().getCurrentUser().getUid())
.limitToFirst(1);
qRef.keepSynced(true);
final DatabaseReference reference = qRef.getRef().child("status");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
DatabaseReference inner = reference.getParent();
inner.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot parent) {
if (parent != null) {
Order newOrder = parent.getValue(Order.class);
if (newOrder != null) {
if (newOrder.getStatus() != null && !newOrder.getStatus().equals("FX_OVER"))
processOrder(newOrder);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
그리고 JSON :
{ "20161010210955" : {
"createdAt" : {
"date" : 10,
"day" : 1,
"hours" : 21,
"minutes" : 9,
"month" : 9,
"seconds" : 55,
"time" : 1476113995244,
"timezoneOffset" : -330,
"year" : 116
},
"customerId" : "npsd3Ldfsdf1x0hsdfsdf2mj14VUA876f2",
"id" : "20161010210955",
"status" : "FX_FULL"
} }
코드 작동에 문제가있는 경우 [문제를 재현하는 최소 코드] (http://stackoverflow.com/help/mcve)를 표시하십시오. 이 경우 작은 JSON 스 니펫 (텍스트로, 스크린 샷 없음)도 도움이됩니다. –
감사합니다. 질문에 내 코드를 추가했습니다. @ FrankvanPuffelen – Vinod