Проблема с получение данных Firebase

Хочу получать инфу о юзерах из бд. Для этого, перебираю их загружаю профиль в карточки. Все работало отлично, но иногда, все просто вылетает.

public class MainWindowActivity extends Fragment {

private User mainUser;
private UsersDatabase usersDatabase;
private FindingArea findingArea;

private SwipeFlingAdapterView flingContainer;
private Card cardsData[];
private CardArrayAdapter arrayAdapter;
private ListView listView;
private List<Card> rowItems;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.main_container, container, false);
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    usersDatabase = Room.databaseBuilder(getActivity().getApplicationContext(), UsersDatabase.class, "UsersRoomDB").allowMainThreadQueries().build();
    mainUser = usersDatabase.getUserDAO().getAllUsers().get(usersDatabase.getUserDAO().getAllUsers().size() - 1);
    flingContainer = getActivity().findViewById(R.id.frame);
    DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("Users");

    if (!(mainUser.getLatitude().equals("0")) && !(mainUser.getLongitude().equals("0")) &&
            !(mainUser.getLatitude().equals("-1")) && !(mainUser.getLongitude().equals("-1"))) {
        findingArea = new FindingArea(Double.parseDouble(mainUser.getLatitude()), Double.parseDouble(mainUser.getLongitude()), 1);
        getNextUser();
        rowItems = new ArrayList<Card>();

        arrayAdapter = new CardArrayAdapter(MainWindowActivity.this.getContext(), R.layout.item_card, rowItems);

        flingContainer.setAdapter(arrayAdapter);
        flingContainer.setFlingListener(new SwipeFlingAdapterView.onFlingListener() {
            @Override
            public void removeFirstObjectInAdapter() {
                Log.d("LIST", "removed object!");
                rowItems.remove(0);
                arrayAdapter.notifyDataSetChanged();
            }

            @Override
            public void onLeftCardExit(Object dataObject) {
                Toast.makeText(MainWindowActivity.this.getContext(), "Left!", Toast.LENGTH_SHORT).show();

                Card obj = (Card) dataObject;
                String id = obj.getUserID();
                myRef.child(id).child("wasVisitedBy").child(mainUser.getID()).setValue(true);
            }
            @Override
            public void onRightCardExit(Object dataObject) {
                Toast.makeText(MainWindowActivity.this.getContext(), "Right!", Toast.LENGTH_SHORT).show();

                Card obj = (Card) dataObject;
                String id = obj.getUserID();
                myRef.child(id).child("wasVisitedBy").child(mainUser.getID()).setValue(true);
                myRef.child(mainUser.getID()).child("visitedRight").push().setValue(id);
            }

            @Override
            public void onAdapterAboutToEmpty(int itemsInAdapter) {
            }

            @Override
            public void onScroll(float scrollProgressPercent) {
            }
        });
    }
    else
        Toast.makeText(this.getContext(), "Включите геоданные и перезагрузите приложение", Toast.LENGTH_LONG).show();
}

private void getNextUser() {
    DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("Users");
    myRef.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            double dataLatitude = Double.parseDouble(dataSnapshot.child("latitude").getValue().toString());
            double dataLongitude = Double.parseDouble(dataSnapshot.child("longitude").getValue().toString());
            if (dataSnapshot.exists() && !(dataSnapshot.child("wasVisitedBy").hasChild(mainUser.getID()))
                    && !(dataSnapshot.child("mail").getValue().toString().equals(mainUser.getMail())) &&
                    dataLatitude >= findingArea.getLeftMaxLatitude() &&
                    dataLatitude <= findingArea.getRightMaxLatitude() &&
                    dataLongitude >= findingArea.getBottomMaxLongitude() &&
                    dataLongitude <= findingArea.getUpperMaxLongitude()) {

                Card item = new Card(dataSnapshot.child("id").getValue().toString(), dataSnapshot.child("name").getValue().toString(),
                        dataSnapshot.child("mainPhoto").getValue().toString());
                rowItems.add(item);
                arrayAdapter.notifyDataSetChanged();
            }
        }

        @Override
        public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
        }
        @Override
        public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
        }
        @Override
        public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
        }
        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
        }
    });
}

}

Вот лог ошибок:

2020-05-03 19:47:08.082 6129-6129/? E/Zygote: v2
2020-05-03 19:47:08.083 6129-6129/? E/Zygote: accessInfo : 0
2020-05-03 19:47:08.606 6129-6129/com.android.badoonfirebase E/ViewRootImpl@58d3211[MainActivity]: ViewRootImpl #2 Surface is not valid.
2020-05-03 19:47:10.064 6129-6129/com.android.badoonfirebase E/FirebaseInstanceId: Failed to resolve target intent service, skipping classname enforcement
2020-05-03 19:47:10.073 6129-6129/com.android.badoonfirebase E/FirebaseInstanceId: Error while delivering the message: ServiceIntent not found.
2020-05-03 19:47:21.326 6129-6129/com.android.badoonfirebase E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.android.badoonfirebase, PID: 6129
    java.lang.NumberFormatException: empty String
        at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1071)
        at java.lang.Double.parseDouble(Double.java:547)
        at com.android.badoonfirebase.AppWindows.MainWindowActivity$2.onChildAdded(MainWindowActivity.java:105)
        at com.google.firebase.database.core.ChildEventRegistration.fireEvent(com.google.firebase:firebase-database@@19.2.1:79)
        at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@19.2.1:63)
        at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@19.2.1:55)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6780)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1500)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1390)

Ответы (0 шт):