Firestore错误“无法反序列化对象”

时间:2019-04-16 15:41:44

标签: android firebase google-cloud-firestore

无法反序列化对象。无法将类型java.lang.String的值转换为int(在字段“ ww”中找到)(ww为优先级)

我了解Firestore规则,我认为我没有犯错, 我已经确认我的RecyclerView与orderBy(“ priority”)配合良好。

我在Firestore控制台中放置了一个随机数据集 我有一个问题。 (每个数据集的格式完全相同,只有值不同)

我已将init声明为int,并且我未将其设置为“数字”而是“字符串”, 所以我知道我错了,所以我解决了这个问题,但是即使发生了所有事情,即使我修复了这个问题, 问题没有消失(我再次将其更改为“数字”)

一次又一次出现相同的错误。

仅当我删除整个集合时,才不会再发生错误。(将相同的数据作为数字输入之后,就没问题了

为什么会这样? (如果只有一个问题,那么所有结果都会连续失败(错误以上))

我不知道为什么,但是似乎只有一个错误会污染整个收藏集。

我想我在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运行按钮)时,它才能正常运行。但还是不明白。为什么会这样?

我尝试了这个Android Studio does not install latest application on device

但不起作用

2 个答案:

答案 0 :(得分:1)

实际上, 这个答案对我有用

Android Studio does not install latest application on device来自Rahul

在安装标志中添加-r标志是一种解决方案,这也会带来一些问题 就像我不知道为什么,但我必须运行或启动该应用程序两次,而不仅仅是一次。 (如果您知道这一点,请回答此) 然后它是固定的。但是感谢您不永久!

答案 1 :(得分:-1)

更改

private int w;

在公开注释类中。