Я недавно запустил свое приложение для Android, которое использует базу данных Firebase в реальном времени, и неожиданно счет был очень велик из-за того, что в Firebase было загружено 1 ГБ.
Мое приложение сейчас приостановлено, и я пытаюсь исправить это, как только смогу.
Раньше я не добавлял слушателей внизу и всегда добавлял в корне, что вызывало это.
A
mDatabaseReference.child("Data").child(ID).child("Details").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//Do Something
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
B
mDatabaseReference.child("Data").child(ID).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.hasChild("Details")){
//Do Something
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Первый метод не выдает ошибку, если данные не существуют, но я хочу знать, выполняет ли их поиск в базе данных (что в сумме загружено в ГБ) или нет?
Так есть ли разница между A и B или лучше (если оно не превышает загруженный ГБ)
Документация Google мало что говорит о слушателях.
Часто ли добавление слушателей в моем приложении приводит к загрузке в ГБ?
Также могу ли я что-нибудь сделать с протоколом соединения и шифрованием SSL?