점수 속성을 사용하여 ListView에 Firebase 데이터 표시
Firebase 데이터의 사용자 ID와 점수를 모두 ListView에 표시하려고 하면 점수 값은 처음에는 사용 불가능할 수 있습니다. 다음은 이 문제를 해결하고 두 속성을 효과적으로 표시하기 위한 포괄적인 가이드입니다.
Firebase API의 비동기 특성
Firebase에서 데이터를 검색하는 데 사용되는 onDataChange() 메서드는 비동기식입니다. , Score 개체가 목록에 추가되기 전에 호출될 수 있음을 의미합니다. 이 문제를 해결하려면 onDataChange() 메서드 내에서 목록을 선언하거나 비동기 동작을 효과적으로 처리하는 기술을 사용하세요.
데이터 구조 및 유형
Score 클래스가 다음을 따르는지 확인하세요. 데이터 멤버에 대한 Java 명명 규칙. 또한 다음과 같이 수정하세요.
public class Score { private String userId; private String score; // ... [other class methods] }
문자열을 사용한 데이터 검색 및 표시
문자열 클래스를 사용하여 데이터를 표시하려면 아래 코드 조각을 활용하세요.
ListView listView = (ListView) findViewById(R.id.list_view); List<String> list = new ArrayList<>(); // Declare list within onDataChange() method ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, list); listView.setAdapter(arrayAdapter); DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); DatabaseReference scoreRef = rootRef.child("score"); ValueEventListener eventListener = new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for(DataSnapshot ds : dataSnapshot.getChildren()) { String userId = ds.child("userId").getValue(String.class); String score = ds.child("score").getValue(String.class); list.add(userId + " / " + score); } arrayAdapter.notifyDataSetChanged(); } // ... [onCancelled() method] }; scoreRef.addListenerForSingleValueEvent(eventListener);
점수를 이용한 데이터 검색 및 표시 클래스
Score 클래스를 사용하여 데이터를 검색하고 표시하려면 다음 코드 조각을 사용하세요.
ValueEventListener eventListener = new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for(DataSnapshot ds : dataSnapshot.getChildren()) { Score score = ds.getValue(Score.class); String userId = score.getUserId(); String score = score.getScore(); list.add(userId + " / " + score); } arrayAdapter.notifyDataSetChanged(); } // ... [onCancelled() method] }; scoreRef.addListenerForSingleValueEvent(eventListener);
위 내용은 ListView에 Firebase 사용자 ID와 점수를 효율적으로 표시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!