"无法退回键入"在将本地sqlite db与firebase db同步时

时间:2016-08-29 11:53:22

标签: android firebase firebase-realtime-database

我已将数据存储在 public String parse(String jsonLine) { JsonElement jelement = new JsonParser().parse(jsonLine); JsonObject jobject = jelement.getAsJsonObject(); jobject = jobject.getAsJsonObject("data"); JsonArray jarray = jobject.getAsJsonArray("translations"); jobject = jarray.get(0).getAsJsonObject(); String result = jobject.get("translatedText").toString(); return result; } 上,如下所示:

Firebase

现在我想从特定用户的 mlist=dbHandler.getAllContacts(1); for (int i=0;i<mlist.size();i++) { reportModel = mlist.get(i); ref = new Firebase(Config.FIREBASE_URL); Firebase userRef = ref.child(mUserId); Map newUserData = new HashMap(); newUserData.put("Sno", reportModel.getSno()); newUserData.put("level", reportModel.getLevel()); newUserData.put("rounds", reportModel.getRounds()); newUserData.put("date", reportModel.getDate()); newUserData.put("time", reportModel.getDatesep()); userRef.push().setValue(newUserData); mref=userRef.push(); newId=mref.getKey(); } 数据库中检索所有数据。我把代码编写为:

Firebase

但该应用程序因错误而崩溃:

  

com.firebase.client.FirebaseException:无法退回键入

我希望如果我从 for (DataSnapshot ds: dataSnapshot.getChildren()) { reportModel = new ReportModel(); reportModel.setSno(ds.getValue(ReportModel.class).getSno()); reportModel.setLevel(ds.getValue(ReportModel.class).getLevel()); reportModel.setRounds(ds.getValue(ReportModel.class).getRounds()); reportModel.setDatesep(ds.getValue(ReportModel.class).getDatesep()); mlist.add(reportModel); } if(mlist.size()>0){ adapter = new ReportAdapter(mContext, R.layout.adapter_layout, mlist); // Binds the Adapter to the ListView listview.setAdapter(adapter); } 删除数据,然后点击按钮后从ListView检索并存储在Firebase上的数据。

1 个答案:

答案 0 :(得分:0)

Firebase无法将其数据映射到已定义的类的错误统计信息。

检查是否:

1)ReportModel有一个空的constructor

2)ReportModel变量和Firebase字段具有相同的名称。

3)Map以下列方式提供数据:

reportModel = ds.getValue(ReportModel.class);