2016-07-24 2 views
-1

Android Studio에서 새 앱을 개발 중입니다. setvalue를 사용하여 Firebase 데이터베이스에 데이터를 저장했지만 문제가 없습니다. 하지만, 아래의 그림처럼 루트 참조에 addValueEventListener를 붙이는 Firebase에서 데이터를 가져 오려고 할 때 OnDataChange()도 호출되지 않고 onCancelled()이 호출됩니다.데이터를 Firebase에 저장할 수 있지만 가져올 수 없습니다.

나는 뭔가를 놓쳤을 것이다. 어떤 도움이되는 제안이라도 환영 받았다. 내 프로그램 중 하나 컨트롤을 디버깅() 또는 onCancelled() onDataChange에 가야 동안

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_detail); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    mDatabase = FirebaseDatabase.getInstance().getReference(); 
    mDatabase.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot snapshot) { 
      System.out.println(snapshot.getValue()); } 


      @Override 
     public void onCancelled(DatabaseError firebaseError) { 
     System.out.println("The read failed: " + firebaseError.getMessage());} 
     }); 

내 의심의 여지가있다. 그러나 그것은 가지 않습니다. 나는 onDataChange()와 onCancelled() fm의 System.out.println 구문에서 중단 점을 지정하고 있지만 컨트롤은 거기서 멈추지 않습니다.

답변

-1

나는 새로운 프로젝트를 생성 및 저장하고 문제없이 작업했다 중포 기지 데이터베이스에서 데이터를 검색하는 시도

해결 SUCCES 알려줘.

그런 다음 문제점을 얻고있는 프로젝트가 기존 firebase.com 콘솔에서 가져온 것임을 알았습니다. 나는 새로운 Firebase 문서에 따라 더 이상 사용되지 않는 앱 레벨 build gradle에서 아래 줄을 지웠다.

packagingOptions { 
    exclude 'META-INF/LICENSE' 
    exclude 'META-INF/LICENSE-FIREBASE.txt' 
    exclude 'META-INF/NOTICE' 
    } 

다른 사람들에게 도움이되기를 바랍니다.

0

문서를 읽었습니까?

중요 :은 onDataChange() 메소드 가 아이들에게 변경 사항을 포함, 지정된 데이터베이스 참조 변경할 때마다 데이터입니다라고합니다. 스냅 샷의 크기를 제한하려면 변경 사항을 보는데 필요한 최고 수준 인 에만 첨부하십시오. 예를 들어, 데이터베이스의 루트에 수신기를 연결하는 은 권장되지 않습니다.

https://firebase.google.com/docs/database/android/retrieve-data

내가 다른 문제

의 그것의 원인

모든 것이 System.out 제외하고, 잘보고 생각 나는 그것이 작동 모르겠지만, 안드로이드는 자신의 로깅 도구가 있습니다. Log.e

+0

일반적으로 루트에 수신기를 연결하는 것은 좋지 않지만 콜백이 무시되지는 않습니다. –

0

mDatabase.child("your table name here").addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot snapshot) { 
      System.out.println(snapshot.getValue()); } 


      @Override 
     public void onCancelled(DatabaseError firebaseError) { 
     System.out.println("The read failed: " + firebaseError.getMessage());} 
     }); 
+0

다양한 하위 수준에서 addValueEventListener를 첨부하려고했지만 여전히 작동하지 않습니다. –

+0

내 프로그램을 디버깅하는 동안 컨트롤이 onDataChange() 또는 onCancelled()로 이동해야합니다. 그러나 그것은 가지 않습니다. 나는 onDataChange()와 onCancelled() fm의 System.out.println 구문에서 중단 점을 지정하고 있지만 컨트롤은 거기서 멈추지 않습니다. –

+0

@RafiMdk 그러면 Firebase 데이터베이스에 데이터가 있습니다. 나는 여러 번 일했고 완벽하게 작동한다. –

0

이 시도 시도하십시오. 이

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_detail); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    mDatabase = FirebaseDatabase.getInstance().getReference(); 
    mDatabase.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot snapshot) { 
      System.out.println(dataSnapshot.getValue().toString()); } 


      @Override 
     public void onCancelled(DatabaseError firebaseError) { 
     System.out.println("The read failed: " + firebaseError.getMessage());} 
     }); 
관련 문제