我有一个用于用户车辆的Cloud Firestore集合。每个文档都通过身份验证与用户的UID绑定在一起。我已经设法将一个自定义的载具POJO写到了集合中,但是一次只能写一辆载具。
我该如何处理,以便用户每次添加另一辆车时,都将其作为数组添加到文档中?所以你必须vehicle[0]
,vehicle[1]
等。
答案 0 :(得分:0)
我该如何处理,以便用户每次添加另一辆车时,都会将其作为数组添加到文档中?
可以通过简单地调用实现此update()
方法等在下面的代码行:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
DocumentReference vehicleIdRef = rootRef.collection("vehicles").document("vehicleId");
Vehicle vehicle = new Vehicle("VehicleName");
vehicleIdRef.update("vehicleArray", FieldValue.arrayUnion(vehicle));
这将原子添加一个新的“车辆”对象的“vehicleArray”阵列字段。更多信息here。
还请注意,仅当您的班级中没有Date
属性时,此技术才有效,否则会出现如下错误:
原因:java.lang.IllegalArgumentException:无效的数据。 FieldValue.serverTimestamp()只能与组()和更新()中使用