Поскольку photo
объявлено как локальный массив (photo: string[];
) в вашем коде JavaScript, Firebase запишет его как есть в базу данных.
Если вы хотите написать отдельные фотографии с pu sh идентификаторы, вам нужно будет записать их отдельно от других данных и вызвать push()
для каждого из них:
let newRef = this.spotsRef.push({
title: spot.title,
synopsis: spot.synopsis,
userId: spot.userId,
markerLatLng: spot.markerLatLng,
markerLatLngTwo: spot.markerLatLngTwo,
categories: spot.categories
});
spot.photo.forEach((photo) => {
newRef.child("photo").push(photo);
})
Вышеуказанное является самым простым, но приводит к нескольким операциям записи в базу данных. Чтобы получить тот же результат в одной операции записи, вы можете сделать что-то вроде:
let photos = {};
spot.photo.forEach((photo) => {
photos[this.spotsRef.push().key] = photo;
})
this.spotsRef.push({
title: spot.title,
synopsis: spot.synopsis,
userId: spot.userId,
markerLatLng: spot.markerLatLng,
markerLatLngTwo: spot.markerLatLngTwo,
photo: photos,
categories: spot.categories
});