【问题标题】:Edit pojo in for firebase database为 firebase 数据库编辑 pojo
【发布时间】:2018-01-20 12:20:58
【问题描述】:

我一直在尝试修改下面的 POJO,以便在我的数据库中创建一个新的数据结构。

public class Registration implements Parcelable {

    private String color;
    private String brand;
    private String model;
    private String reg_date;
    private String license_plate;
    private String id_type;
    private String id_number;
    private String picture;
    private int service_type;
    private int fuel_type;
    private int vehicle_type;
}

一切看起来都很好,但是当服务器上的函数调用 DB 的 onWrite 时。如果我打印 obj 它看起来像:

{ fuelType: 0,
  idNumber: '0000000',
  idType: 'L',
  licensePlate: 'III000',
  serviceType: 0,
  vehicleType: 0 }

下面的代码可以解决问题。

exports.runt = functions.database.ref('/vehicles/{pushId}').onWrite(event => {

    if(!event.data.val() || event.data.previous.val()){
        console.log("Not Adding a new vehicle");
        return;
    }

    var uuid = event.auth.variable ? event.auth.variable.uid : null;

    console.log(event.data.val());

    retrieveVehicleInfo(event, uuid);

    retrieveTickets(event, uuid);

});

有没有办法清理或刷新 firebase 中的对象,因为我不明白为什么我的对象总是看起来像旧的。

【问题讨论】:

  • Firebase 将您的 POJO 解释为 JavaBean 类,并对属性名称进行驼峰式大小写。 faruk 的回答显示了所需的注释。

标签: android node.js firebase firebase-realtime-database google-cloud-functions


【解决方案1】:

在你的 pojo 中将 @PropertyName(YOUR FIELD) 放入你的变量、getter 和 setter 中

例如:

@PropertyName("reg_date")
private String reg_date;

@PropertyName("reg_date")
public String getRegDate() {
    return reg_date;
}

@PropertyName("reg_date")
public void setRegDate(String reg_date) {
    this.reg_date = reg_date;
}

【讨论】:

  • 我认为在这种情况下您不需要字段本身的注释。
猜你喜欢
  • 2022-11-12
  • 1970-01-01
  • 2018-06-24
  • 2018-07-25
  • 2017-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多