Ошибка Firestore "Не удалось десериализовать объект" - PullRequest
0 голосов
/ 16 апреля 2019

Не удалось десериализовать объект.Не удалось преобразовать значение типа java.lang.String в int (находится в поле 'ww') (ww является приоритетным)

Я знаю о правилах Firestore и думаю, что не было ошибок, я уже подтвердилчто мой RecyclerView хорошо работает с orderBy («приоритетом»).

Я поместил случайный набор данных в консоль Firestore, и у меня возникла проблема.(каждый набор данных имеет один и тот же формат, отличаются только значения)

Я объявил приоритет как целое, и я не сделал его "число", но "строка", поэтому я знаю, что я был неправ, поэтому яисправил это, но после того, как все это произошло, даже когда я это исправил, проблема не исчезла (я снова изменил на «число»)

Появляется одна и та же ошибка снова и снова.

только когда я удаляю всю эту коллекцию, ошибка больше не возникает. (и после того, как он помещает те же данные, что и число, ничего не возникает)

почему это происходит?(если у него возникла проблема только один раз, то после того, как все результаты не пройдены непрерывно (ошибка выше))

Я не знаю, почему, но кажется, что только одна ошибка загрязняет всю коллекцию.

Iдумаю, я нашел новую ошибку в Firestore.Кто-нибудь знает об этом?

спасибо


это странно.если не было ошибок ни разу, тогда я могу отредактировать данные String и изменить их на «число», запустить приложение и ничего не произошло.(работает нормально)

но однажды я получил ошибку, тогда даже если я обновил ее правильно, ошибка снова навсегда

public class Note {
    private int ww;

    public Note() {
        //empty constructor needed
    }

    public Note(int ww) {
        this.ww = ww;
    }

    public int getWw() {
        return ww;
    }
}

И

Query query =  databaseRef.orderBy("ww", Query.Direction.DESCENDING);

    FirestoreRecyclerOptions<Note> options = new FirestoreRecyclerOptions.Builder<Note>()
            .setQuery(query, Note.class)
            .build();

    mAdapter = new NoteAdapter(options);

    RecyclerView recyclerView = findViewById(R.id.recycler_view);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    recyclerView.setAdapter(mAdapter)

моя структура базы данныхURL

enter image description here

Сообщение об ошибке

Не удалось десериализовать объект.Не удалось преобразовать значение типа java.lang.String в int (находится в поле 'ww')

-

Я думаю, что это проблема Android Studio с сетью Firebase, чтоэто то, чего я не знаюЯ понял, что, когда я запускаю приложение только внутри Эмулятора (а не в Android Studio Run Button), оно работает нормально.но все еще не понимаю.Почему это происходит?

, и я попробовал это Android Studio не устанавливает последнее приложение на устройство

, но не работает

1 Ответ

1 голос
/ 16 апреля 2019

на самом деле, у меня этот ответ сработал

Android Studio не устанавливает последнее приложение на устройство от Rahul

добавление флага -r к флагам установки было решением, и это также создает небольшую проблему как будто я не знаю почему, но я должен запустить или запустить приложение дважды, а не только один раз. (если вы знаете об этом, пожалуйста, ответьте на это) тогда это исправлено. но спасибо, что не был постоянным!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...