firebase에서 특정 값을 가져와야하는 앱에서 작업 중입니다. 이 경우 "uid"가 현재 사용자 ID와 동일한 "점수"를 가져와야합니다. 그렇게하는 가장 좋은 방법은 무엇입니까?firebase에서 특정 값을 가져 오는 방법
도움 주셔서 감사합니다.
firebase에서 특정 값을 가져와야하는 앱에서 작업 중입니다. 이 경우 "uid"가 현재 사용자 ID와 동일한 "점수"를 가져와야합니다. 그렇게하는 가장 좋은 방법은 무엇입니까?firebase에서 특정 값을 가져 오는 방법
도움 주셔서 감사합니다.
Firebase은 항상 전체 노드를 반환합니다. 따라서 사용자의 점수 만 반환 할 수는 없습니다. 하지만 당신은 중포 기지 쿼리를 사용하여 점수와 사용자 모두 (-K...
로 시작하는 것) 아래에있는 일반 노드를 반환 할 수 있습니다 코드가 결과에 snapshot
을 통해 루프 것을
DatabaseReference leadersRef = FirebaseDatabase.getInstance().getReference("Leaders");
Query query = leadersRef.orderByChild("uID").equalTo("vUdnKx...");
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot child: snapshot.getChildren()) {
System.out.println(child.getKey()+": "+child.child("Score").getValue(Long.class));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
Log.w(TAG, "onCancelled", databaseError.toException());
// ...
}
})
참고. 이는 쿼리에 잠재적으로 여러 결과가 있기 때문입니다. 따라서 스냅 샷에는 해당 결과 목록이 포함됩니다. 단일 결과 만있는 경우에도 스냅 샷에는 하나의 결과 목록이 포함됩니다.
자세한 내용은 Firebase documentation on handling lists 및 sorting and filtering data을 참조하십시오.
고마워요. 원하는 결과를 얻었습니다 – MariusBrave
여러 결과에 대해 각 사용자는 하나의 리더 "자식"만 갖게되므로 큰 문제가 발생합니다 – MariusBrave
JSON Database
에 beeing, 중포 기지는 WHERE
절을 제공하지 않습니다. 이를 달성하기 위해 10_vUdnKxCSRegqruSAi1Ncz5HWPO
값으로 Score_uID
이라는 새 필드를 만들 수 있습니다. 이 새로운 fied가 있으면 "uid"가 현재 사용자 ID와 같은 "점수"가있는 값만 선택할 수 있습니다. 이것은 Firebase 내의 일반적인 관행입니다. 희망이 도움이됩니다.
실시간베이스 데이터베이스 (Firebase)에 대한 문서 (https://firebase.google.com/docs/database/android/read-and-write)를 확인하십시오.
당신은 당신의 답을 얻을 것입니다
** Leaders-> key-> data ** 대신 ** Leaders-> user id-> key-> data **를 입력하면 원하는 사용자의 데이터를 간단히 가져올 수 있습니다. – AlwaysConfused
몇 가지 샘플 코드? 그게 큰 도움이 될 것입니다 – MariusBrave
아주 간단합니다. firebase 문서 [여기] (https://firebase.google.com/docs/database/android/read-and-write)를 따라하면됩니다. 내가 올바른 데이터베이스를 가지고 있는지 확인하기 전에 앞서 언급 한 – AlwaysConfused