Firestore - запись массива пользовательских объектов - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть коллекция Cloud Firestore для пользовательских транспортных средств.Каждый документ привязан к UID пользователя из аутентификации.Мне удалось выписать пользовательское POJO транспортного средства в коллекцию, но я могу написать только одно транспортное средство за раз.

Как я могу справиться, чтобы каждый раз, когда пользователь добавляет другое транспортное средство, он добавлял его вдокумент в виде массива?Таким образом, у вас будет vehicle[0], vehicle[1] и т. Д.

1 Ответ

0 голосов
/ 02 февраля 2019

Как мне справиться, чтобы каждый раз, когда пользователь добавляет другое транспортное средство, он добавлял его в документ в виде массива?

Этого можно добиться, просто вызвав метод update()как в следующих строках кода:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
DocumentReference vehicleIdRef = rootRef.collection("vehicles").document("vehicleId");
Vehicle vehicle = new Vehicle("VehicleName");
vehicleIdRef.update("vehicleArray", FieldValue.arrayUnion(vehicle));

, который атомарно добавит новый объект "Vehicle" в поле массива vehicleArray.Больше информации здесь .

Обратите также внимание, что этот метод будет работать, только если у вас нет свойства Date в вашем классе, в противном случае вы получите такую ​​ошибку:

Причина: java.lang.IllegalArgumentException: неверные данные.FieldValue.serverTimestamp () может использоваться только с set () и update ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...