Я хотел создать приложение, которое использует firebase в качестве бэкэнда. Теперь проблема заключается в том, что мне нужно подключить прослушиватель, чтобы получить снимок данных. Но каждый раз, когда мое приложение запускается, я хочу запрашивать у Firebase данные и заполнять свои представления, даже если в базе данных не было никаких изменений.
как мне получить данные из firebase без прослушивания изменений?
comment
пожалуйста, поделитесь своим кодом
- person Linh   schedule 14.09.2016
comment
ответ должен быть здесь: firebase.google.com/docs/ база данных/андроид/
- person Nerdy Bunz   schedule 14.09.2016
Ответы (1)
Я полагаю, вы делаете что-то вроде этого:
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
}
});
person
Sergio Carneiro
schedule
14.09.2016
Спасибо.... Теперь я понял.... проблема заключалась в том, что имя переопределяющего метода onDatachange вводило в заблуждение, я думал, что он вызывается только при изменении данных.
- person sharang gupta; 15.09.2016
Долгое время я работал над firebase, у меня была эта проблема около недели, думая, что проблема может быть в бэкэнде. Вы спасли мою пятницу!
- person olajide; 06.12.2019