2016-09-14 113 views
1

我想创建一个使用firebase作为后端的应用程序。现在我遇到的问题是我必须附加一个侦听器才能获取数据快照。但是,每次我的应用程序启动时,即使数据库中没有更改,我也想查询Firebase的数据并填充我的视图。如何从Firebase中检索数据而无需聆听更改?

+2

请分享您的代码 –

+0

答案应该是在这里:https://firebase.google.com/docs/database/android/retrieve-data#child-events –

回答

3

我想你正在做的事情是这样的:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); 
ref.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      // Code 
     } 
     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      // Code 
     } 
    }); 

所以对我怎么想你问,打电话叫addListenerForSingleValueEvent应该解决这个问题的替代方法。它会而不是监听更改,只要返回一个值,它将停止连接,直到再次连接。


结果

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); 
    ref.addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      // Code 
     } 
     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      // Code 
     } 
    }); 
+0

谢谢....我现在明白了....问题在于,重写方法onDatachange的名称是误导性的,我认为它仅在数据更改时才被调用 –