2016-05-29 72 views
2

我正在使用Firebase使用來自Android SDK的addValueEventListener來檢索數據,但我發現有時候響應時間至少需要1分鐘才能得到結果。Firebase addValueEventListener響應時間有點慢?

我的代碼:

Firebase firebase = new Firebase("https://example.firebaseio.com/"); 
firebase.child("XYZ").addValueEventListener(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 

        Log.d("DataFirebase","onDataChange : "+dataSnapshot); 

        Toast.makeText(getApplicationContext(),"onDataChange",Toast.LENGTH_SHORT).show(); 

       } 

       @Override 
       public void onCancelled(FirebaseError firebaseError) { 

        Log.d("DataFirebase","onCancelled : "+firebaseError); 

        Toast.makeText(getApplicationContext(),"onCancelled",Toast.LENGTH_SHORT).show(); 
       } 
    }); 

這是我上面的代碼,請讓我知道,我如何從一個鍵得到的結果瞬間。請給我一些解決方案。

+2

你的代碼中沒有任何東西可以解釋緩慢。這些東西難以置信地遠程排除故障。它歸結爲您運行此設備的設備,網絡連接,您與Firebase服務器之間的跳數,程序請求的數據量等。如果您提供了[MCVE](http:// stackoverflow .com/help/mcve)對你來說運行緩慢,我們可以運行它進行比較。 –

回答

4

我也有一個緩慢與firebase實時db的問題。嘗試在您的Application類的「onCreate」方法內調用FirebaseDatabase.getInstance().setPersistenceEnabled(true);

要知道,這將節省您的設備,第二個通話的數據和上面會快很多,但是從緩存中,可以過時,this緊接在需要時從服務器處理同步數據。