2016-06-07 7 views
1

내 응용 프로그램 용으로 Firebase Database 9.0.2를 사용하고 있습니다.Firebase Android 쿼리가 전혀 반환되지 않습니다. 결과 :

새로 설치 한 후 몇 분 내에 데이터베이스 쿼리가 제대로 작동합니다. 그러나 몇 분 후 앱을 다시 열면 "onDataChange"및 "onCancelled"메서드는 결과를 반환하지 않습니다. 앱을 다시 설치하거나 앱 데이터를 지우면 쿼리가 다시 작동합니다. 내가 쿼리를 실행하는 방법

:

Query query = FirebaseDatabase.getInstance().getReference().child("listings").child(id); 
     query.addValueEventListener(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       //do something 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 
       //do something 
      } 
     }); 

여기 내 데이터베이스 규칙입니다 :이 일어나는 이유

{ 
    "rules": { 
    ".read": true, 
    ".write" : true 
    } 
} 

어떤 생각이?

+0

코드에 대한 this를 참조? – Shubhank

+0

@Shubhank, 내 쿼리 코드 –

+0

으로 업데이트되었습니다.이 함수는 이것을 호출합니다.> – Shubhank

답변

2

addValueEventListener을 사용했을 수 있지만 해당 값이 변경되면 호출됩니다. 데이터베이스에서 데이터를 읽으려면 addListenerForSingleValueEvent을 사용해야합니다.

mDatabase.child("users").child("childKey").addListenerForSingleValueEvent(
    new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 



     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      Log.w(TAG, "getUser:onCancelled", databaseError.toException()); 
     } 
    }); 

는 데이터베이스 쿼리에 대한 더 많은

+0

많은 감사합니다! –