2016-05-29 4 views
2

Я работаю над Firebase, чтобы получить данные, используя addValueEventListener из Android SDK, но я обнаружил, что время отклика занимает минимум 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 realtime db. Попробуйте позвонить, FirebaseDatabase.getInstance().setPersistenceEnabled(true); внутри метода «onCreate» класса Application.

Учтите, что это сохранит данные на вашем устройстве, а второй вызов будет намного быстрее, но из кеша и может быть устаревшим, Прочитайте this для обработки синхронизации данных с сервера при необходимости сразу.

Смежные вопросы