android - 无法解析为快照:Firebase setValue ANDROID
问题描述
firebase = new Firebase(Config.FIREBASE_URL_FARE);
firebase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getChildrenCount() == 0) {
Fare fare = new Fare();
fare.setOrdinaryRegFirstFive(ordinaryRegularFF);
fare.setOrdinaryRegSucceeding(ordinaryRegSucceeding);
fare.setOrdinaryDiscountedFirstFive(ordinaryDisFF);
fare.setOrdinaryDiscountedSucceeding(ordinaryDisSucceeding);
fare.setAirconRegPerKm(airconRegPerKm);
fare.setAirconDiscountedPerKm(airconDisPerKm);
fare.setBusCompany(pref.getString("companyName", ""));
firebase.push().setValue(fare);
edtOrdinaryRegFF.setText("");
edtOrdinaryRegSucceeding.setText("");
edtOrdinaryDisFF.setText("");
edtOrdinaryDisSucceeding.setText("");
edtAirconRegPerKm.setText("");
edtAirconDisPerKm.setText("");
Toast.makeText(BusFareActivity.this, "Setting fare successfully.", Toast.LENGTH_LONG).show();
}
else {
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
if (postSnapshot.child("busCompany").exists() && postSnapshot.child("busCompany").equals(pref.getString("companyName", ""))) {
postSnapshot.getRef().child("ordinaryRegFirstFive").setValue(ordinaryRegularFF);
postSnapshot.getRef().child("ordinaryRegSucceeding").setValue(ordinaryRegSucceeding);
postSnapshot.getRef().child("ordinaryDiscountedFirstFive").setValue(ordinaryDisFF);
postSnapshot.getRef().child("ordinaryDiscountedSucceeding").setValue(ordinaryDisSucceeding);
postSnapshot.getRef().child("airconRegPerKm").setValue(airconRegPerKm);
postSnapshot.getRef().child("airconDiscountedPerKm").setValue(airconDisPerKm);
Toast.makeText(BusFareActivity.this, "Successfully updated the fare.", Toast.LENGTH_LONG).show();
check++;
}
}
if (check == 0) {
Fare fare = new Fare();
fare.setOrdinaryRegFirstFive(ordinaryRegularFF);
fare.setOrdinaryRegSucceeding(ordinaryRegSucceeding);
fare.setOrdinaryDiscountedFirstFive(ordinaryDisFF);
fare.setOrdinaryDiscountedSucceeding(ordinaryDisSucceeding);
fare.setAirconRegPerKm(airconRegPerKm);
fare.setAirconDiscountedPerKm(airconDisPerKm);
fare.setBusCompany(pref.getString("companyName", ""));
firebase.push().setValue(fare);
edtOrdinaryRegFF.setText("");
edtOrdinaryRegSucceeding.setText("");
edtOrdinaryDisFF.setText("");
edtOrdinaryDisSucceeding.setText("");
edtAirconRegPerKm.setText("");
edtAirconDisPerKm.setText("");
Toast.makeText(BusFareActivity.this, "Setting fare successfully.", Toast.LENGTH_LONG).show();
startActivity(new Intent(BusFareActivity.this, BusFareActivity.class));
}
check = 0;
}
来自的所有数据Fare.java
都是双倍的,除了busCompany
. 我不明白为什么它无法解析 setValue 方法的快照。
public class Fare {
private double ordinaryRegFirstFive;
private double ordinaryRegSucceeding;
private double ordinaryDiscountedFirstFive;
private double ordinaryDiscountedSucceeding;
private double airconRegPerKm;
private double airconDiscountedPerKm;
private String busCompany;
public Fare() {}
public void setOrdinaryRegFirstFive(double ordinaryRegFirstFive) {
this.ordinaryRegFirstFive = ordinaryRegFirstFive;
}
public void setOrdinaryRegSucceeding(double ordinaryRegSucceeding) {
this.ordinaryRegSucceeding = ordinaryRegSucceeding;
}
public void setOrdinaryDiscountedFirstFive(double ordinaryDiscountedFirstFive) {
this.ordinaryDiscountedFirstFive = ordinaryDiscountedFirstFive;
}
public void setOrdinaryDiscountedSucceeding(double ordinaryDiscountedSucceeding) {
this.ordinaryDiscountedSucceeding = ordinaryDiscountedSucceeding;
}
public void setAirconRegPerKm(double airconRegPerKm) {
this.airconRegPerKm = airconRegPerKm;
}
public void setAirconDiscountedPerKm(double airconDiscountedPerKm) {
this.airconDiscountedPerKm = airconDiscountedPerKm;
}
public void setBusCompany(String busCompany) {
this.busCompany = busCompany;
}
}
火力基地错误:
com.firebase.client.FirebaseException:无法解析到快照
解决方案
您在 pojo 类中使用私有变量,这可能是导致异常的原因。当您尝试使用模型类推送到 firebase 时,变量应该是公开的。
推荐阅读
- jakarta-ee - 如何使用 Quarkus 在生产环境中禁用从 /resources/META-INF/resources 访问某些静态文件?
- python - Python多处理运行过程两次?
- javascript - 如何让 JSON 数据返回?
- c++ - 在 gcc 路径搜索中 - 我无法在当前目录中导入文件
- docker - 如何使用 gitlab ci 构建的最新图像“最新”?
- gtk - GTK ScrolledWindow max_content_width/height 不适用于 TextView
- database - 共享 SSH 公钥?
- php - Laravel 无法识别控制器 __invoke()
- sql - 如何在为链接表创建的视图的 INSTEAD OF UPDATE 触发器中更新
- c++ - 如何在 C++ 中找到数组元素?