2017-09-08 1 views
0

FirebaseRecyclerAdapter가 Firebase를 구조화하기 전에 작동 했으므로 이제는 json과 같은 정보를 얻는 방법을 모르겠습니다.푸시 키 안의 Android 용 Firebase에 대한 쿼리 수행

내가이 전에이 : 내가 시도

"Users" : { 
"Ox0s6GhGhDcZ1vKkteeZfIyNYXI2" : { 
    "Info" : { 
    "email" : "[email protected]", 
    "name" : "Elvis De Abreu", 
    "username" : "111" 
    } 
} 

: 이제 다음과 같은 구조

"Users" : { 
"dq92R8ftK2haPHJSA9undgqpmxh1" : { 
    "name" : "Elvis De Abreu", 
    "username" : "elvis0288" 
} 

와 함께 일이 같은 정보라는 새로운 노드를 추가

DatabaseReference userReference = mRootRef.child("Users"); 
query = userReference.orderByChild("name"); 

.child("Info") 및 기타 관련 대안을 입력해도 작동하지 않습니다. 나는 정보를 제거하고 첫 번째 구조 만 남겨 두어야합니까, 아니면이를 수행 할 수있는 방법이 있습니까? 문제는 내가 정말 도움을

감사 감사하겠습니다이

을 분리 갖고 싶어 왜 그렇게이이 정보 후에 내가 게임에 대한 또 다른 노드를 가질 것입니다!

답변

1

Info을 제거하지 않아야합니다. 올바른 방법으로 사용해야합니다. 괄호 내에서 따옴표를 참조

.child("Info") 

.child(Info) 

:이 아이를 변경해야합니다.

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference usersRef = rootRef.child("Users"); 
ValueEventListener eventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for(DataSnapshot ds : dataSnapshot.getChildren()) { 
      String email = ds.child("Info").child("email").getValue(String.class); 
      String name = ds.child("Info").child("name").getValue(String.class); 
      String username = ds.child("Info").child("username").getValue(String.class); 
      Log.d("TAG", email + "/" + name + "/" + username); 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}; 
usersRef.addListenerForSingleValueEvent(eventListener); 

귀하의 출력이 될 것입니다 :

다음 코드를 사용하십시오

[email protected]/Elvis De Abreu/111 
+0

안녕하세요 알렉스, 난 그렇게했지만 여전히 아무것도 발견되지 않습니다. 나는 아무 것도하지 않기 때문에 어떻게 든 거기에 밀어 넣기를해야합니다. 내가 아이를하면 ("정보"), 나는 사용자 -> 정보에서 사용자 이름을 찾고있을 것이지만 푸시 ID는 무엇입니까? – ElvisBoss

+0

푸시 한 ID는 괜찮습니다. 그러나 오류는 무엇입니까? –

+0

모든 사용자의 사용자 이름 목록이 필요하지만 모든 사용자에 대해 알 필요가 있기 때문에 액세스 할 수 없습니다. 그럴 경우 – ElvisBoss

관련 문제