я использовал firebase childEventListener в классе обслуживания. Именно то, что я делал в классе обслуживания, подобно этому коду question. Разница только в том, что я использовал вложенный childEventListener
Этот вложенный childEventListener получает данные от дочернего элемента дочернего элемента с неизвестным идентификатором. И сервис сделать липким, и этот сервис запускается MainActivity (это первая видимая активность).
Теперь проблема в том, что когда MainActivity запускает службу, устройство зависает до тех пор, пока firebase полностью не прослушивает все данные, и когда прослушивание завершено, устройство работает отлично. Есть ли какое-либо решение для этого отставания от класса обслуживания?
возможно ли, что вложенный childEventListener работает в другом потоке, чем, пожалуйста, помогите мне. Спасибо.
Ref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
{
final String uid=dataSnapshot.getKey();
Ref.child(uid).addChildEventListener(new ChildEventListener()
{
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
{
Messages messages=dataSnapshot.getValue(Messages.class);
String pushKey=dataSnapshot.getKey();
if (!(pushKey ==null))
{
if(currentUid!=null)
{
SomeMethods(messages,pushKey,myDbHandler,currentUid,uid);
}
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
{
SomeMethods(messages,pushKey,myDbHandler,currentUid,uid);
}