0
String userID = user.getUid(); 
mFirebaseDatabase = FirebaseDatabase.getInstance(); 

사용자의 userId가 있으므로 두 번째로 (로그인 한 후) 내 앱을 열 때 선택한 사용자 유형 레이아웃을 나타내지 않아야합니다. 따라서 고객 또는 직원이 내부적으로 사용되었는지 확인해야합니다. 그래서 문제는 사용자 ID가 있는지 확인하는 것입니다. 사용자 ID가 있는지 여부를 확인하는 방법을 찾을 수 없습니다. addListenerForSingleValueEvent라는 메서드가 있지만 내 시나리오에서 도움이되지 않습니다. 데이터베이스의 그림은 당신에게 첫째, 내가 사용자가 중포 기지 데이터베이스의 특정 섹션에 있는지 확인하려면이Firebase가 데이터의 가치를 얻습니다. Android

mFirebaseDatabase.getReference().child("Users").child("Customers") 

답변

2

후 계속하는 방법을 몰라 여기

enter image description here

주어진다 청취자를 추가 한 다음 dataSnapshot 개체에서 직접 exists() 메서드를 사용해야합니다. 그러므로 Users 노드가 Firebase 데이터베이스 루트의 직접적인 하위 노드 인 경우 다음 코드를 사용하십시오 :

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference customersRef = rootRef.child("Users").child("Customers").child(userID); 
ValueEventListener eventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     if(dataSnapshot.exists()) { 
      //do somethig 
     } else { 
      //do something else 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}; 
customersRef.addListenerForSingleValueEvent(eventListener); 
+0

그냥 듣고있는 중입니다! 너무 조금 시간이 걸립니다. 리스너없이 직접 쿼리하거나 값을 설정하는 메서드를 사용할 수 있습니까? – eagle

+0

아니요, 말하는대로 직접 질문 할 수는 없습니다. Firebase에 관해서는 모든 것이 청취자에 관한 것입니다. 따라서 일부 데이터를 검색하려면 리스너를 추가해야합니다. 값을 설정하면 참조 할 때'setValue()'메소드 만 사용하면됩니다. 데이터를 검색하려면 리스너를 연결해야합니다. –

+0

이것을 명확히 해 주셔서 감사합니다! – eagle

관련 문제