我有一个我在本地创建并导入Firebase的现有数组,我的数组看起来像这样。
这两个元素都是创建的对象,其中包含许多与约会相关的信息。
现在我正在尝试使用相同的表单创建一个新元素,例如:
2-- | __我在我的应用程序中创建的对象
我只管理或删除了其余元素(使用setValue(object))
Appointment newAppointment = new Appointment.Builder()
.fechacita(dateSelected)
.horacita(hourSelected)
.usertoken(mAuthManager.getCurrentUserId())
.oficina(centerSelected)
.build();
mDatabaseRef.child("LISTACITAS").setValue(newAppointment);
或使用ID创建它,在恢复数据时由于对不相等的对象进行反序列化而导致应用程序崩溃。
我要插入的约会对象是
public class Appointment implements Parcelable {
private String fechacita;
private String horacita;
private Office oficina;
private String userID;
.....
}
该类是一个普通的Parcelable类,它使用她的构建器生成一个对象。
请帮忙......
答案 0 :(得分:1)
试试这段代码
mDatabaseRef.push().setValue(incidentReportUser)
以这种方式编写(push()
添加值而不是覆盖)。
来自here的答案
更新1
如果你想要一个密钥系列,而不是一些随机值,试试这个:
使用
获取列表中的最后一个键查询dbQry = mDatabaseRef.orderByKey()。limitToLast(1); dbQry.addValueEventListener(new ValueEventListener(){ @覆盖 public void onDataChange(DataSnapshot dataSnapshot){
int key = Integer.parseInt(dataSnapshot.getKey());
//Increment the key and add the object here using the earlier method
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
}
我现在还没有检查过这个,但你可以明白这个想法