我是Firestore的新手,即使我对文档有所了解,也遇到了一些麻烦。
我具有以下结构:
buses (collection) -> cb-123-1 (document) -> many custom objects
现在我正尝试在文档之后添加数据:
PassengerModel passengerModel = new PassengerModel(
Integer.parseInt(seatNo.getText().toString()),
"selected");
mFirestore.collection("buses").document(mBusUid)
.set(passengerModel, SetOptions.merge());
现在可以在单击时添加该项目,但是它将替换我文档中存在的内容,而不是添加到其中。
答案 0 :(得分:0)
我假设您的PassengerModel
类具有该乘客的所有属性。在这种情况下,行为是可以预期的:Firestore遍历该类的所有属性。如果某个属性不存在任何值,则将该属性删除。
您更有可能希望打补丁,这需要一个仅具有您要修改的属性的数据模型。一种更简单,更常见的方法是使用Map
进行修补,或更简单的方法是:
mFirestore.collection("buses").update(seatNo, Integer.parseInt(seatNo.getText().toString()))