Firestore-写入自定义对象数组

时间:2019-02-02 06:30:46

标签: java android firebase google-cloud-firestore

我有一个用于用户车辆的Cloud Firestore集合。每个文档都通过身份验证与用户的UID绑定在一起。我已经设法将一个自定义的载具POJO写到了集合中,但是一次只能写一辆载具。

我该如何处理,以便用户每次添加另一辆车时,都将其作为数组添加到文档中?所以你必须vehicle[0]vehicle[1]等。

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()只能与组()和更新()中使用