firebase.database.DatabaseException:无法将 java.lang.Long 类型的值转换为 String

问题描述 投票:0回答:3

[This is the database]

firebase.database.DatabaseException: Failed to convert value of type java.lang.Long to String

我尝试将此数据添加到 FirebaserecyclerAdapter 并收到此错误

这是数据库参考

    databaseReference = FirebaseDatabase.getInstance().getReference().child("questions");

这就是我使用 RecyclerViewAdapter 的方式

  FirebaseRecyclerAdapter<History, HistoryViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<History, HistoryViewHolder>(
            History.class, R.layout.history_list_item, HistoryViewHolder.class, databaseReference) {
        @Override
        protected void populateViewHolder(HistoryViewHolder viewHolder, History model, int position) {
            viewHolder.setMyanswer(model.getMyAnswer());
            viewHolder.setCorrentAnswer(model.getCorrectAnswer());
            viewHolder.setImageUrl(getApplicationContext(), model.getImageUrl());

        }
    };
    recyclerView.setAdapter(firebaseRecyclerAdapter);
android firebase firebase-realtime-database firebaseui
3个回答
10
投票

数据库中的两个节点确实数据类型不匹配:

myAnswer : "21"
myAnswer : 11

如果您希望这是一个字符串,则应该是:

myAnswer : "21"
myAnswer : "11"

或者,只要它们足够长:

myAnswer : 21
myAnswer : 11

确保添加数据时注意一致性


0
投票
valueX = 21.4;

valueY = 23.5;

需要将Long改为String

String mValuex = String.valueOf(valueX);

String mValuey = String.valueOf(valueY);

myRef.child(username).child("valuex").setValue(mValuex);

myRef.child(username).child("valuey").setValue(mValuey);

0
投票

在Firebase中,创建数据库时,指定两个字段都是字符串,要么将数字放在双引号中,要么选择Select data type

旁边的字符串
© www.soinside.com 2019 - 2024. All rights reserved.