Не удалось десериализовать объект. Не удалось преобразовать значение типа java.lang.String в long - PullRequest
0 голосов
/ 10 мая 2019

Я хочу извлечь данные из базы данных. У меня есть два поля типа цифра, которые вызывают у меня проблему совместимости

Работа с другими символьными данными, кроме цифр

package fr.halas.loginhalas.Filter;

import com.google.firebase.firestore.IgnoreExtraProperties;

@IgnoreExtraProperties
public class Affichage {


    public static final String FIELD_CREATOR_NAME = "CreatorName";
    public static final String FIELD_USERID = "UserID";
    public static final String FIELD_MODULE = "Module";
    public static final String FIELD_SECTION = "Section";
    public static final String FIELD_GROUPE = "Groupe";


    private String CreatorName;
    private String Module;
    private String UserID;
    private long Section;
    private long Groupe;



    public Affichage(String CreatorName,String UserID,String Module, long Section, long Groupe) {
        this.CreatorName = CreatorName;
        this.UserID = UserID;
        this.Module = Module;
        this.Section = Section;
        this.Groupe = Groupe;
    }

    public Affichage() {
        // empty default constructor, necessary for Firebase to be able to deserialize users
    }

    public String getCreatorName() {
        return CreatorName;
    }

    public void setCreatorName(String creatorName) {
        CreatorName = creatorName;
    }

    public String getModule() {
        return Module;
    }

    public void setModule(String module) {
        Module = module;
    }

    public String getUserID() {
        return UserID;
    }

    public void setUserID(String userID) {
        UserID = userID;
    }

    public long getSection() {
        return Section;
    }

    public void setSection(long section) {
        Section = section;
    }

    public long getGroupe() {
        return Groupe;
    }

    public void setGroupe(long groupe) {
        Groupe = groupe;
    }


}

  @SuppressLint("SetTextI18n")
        public void bind(final DocumentSnapshot snapshot, final OnAffichageSelectedListener listener) {

            final Affichage affichage = snapshot.toObject(Affichage.class); // Error is here ! 

            creator.setText(affichage.getCreatorName());
            moduleView.setText(affichage.getModule());
            groupeView.setText("Groupe: " + affichage.getGroupe());
            sectionView.setText("Section: " + affichage.getSection());

Сообщение об ошибке 05-10 18: 00: 36.850 19488-19488 / fr.halas.loginhalas E / AndroidRuntime: ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: основное Процесс: fr.halas.loginhalas, PID: 19488 java.lang.RuntimeException: не удалось десериализовать объект. Не удалось преобразовать значение типа java.lang.String в long (найдено в поле 'Groupe')

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

После полного удаления приложения на моем телефоне и перезапуска компиляции оно запускается нормально без ошибок, приложение должно было выдавать недействительные кешированные данные

0 голосов
/ 10 мая 2019

эти две строки:

    groupeView.setText("Groupe: " + affichage.getGroupe());
    sectionView.setText("Section: " + affichage.getSection());

должно быть:

    groupeView.setText("Groupe: " + Long.toString(affichage.getGroupe());
    sectionView.setText("Section: " + Long.toString(affichage.getSection());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...