Я создаю импортер для некоторых документов в firebase.
Мне нужно иметь подколлекцию (а не просто массив) для определенного c свойства каждого документа, который я добавляю.
В настоящее время у меня есть следующий код, который, кажется, не работает:
let rawdata = fs.readFileSync("files/" + file);
let spot = JSON.parse(rawdata);
var spotFirebase = {
id: spot.Id,
sourceId: spot.SourceId,
type: spot.Type,
location: new firebase.firestore.GeoPoint(spot.Latitude, spot.Longitude),
description: spot.Description,
address: spot.Address,
city: spot.City,
country: spot.Country,
price: spot.Price,
parkingCost: spot.ParkingCost,
opening: spot.Opening,
name: spot.Name,
features: spot.Features,
activities: spot.Activities,
rating: {
ratingCount: spot.Rating.RatingCount,
ratingAverage: spot.Rating.RatingAverage
}
}
db.collection("spots").add(spotFirebase).then(function (docRef) {
console.log("Document ", file, " written with ID: ", docRef.id, ", index: ", index, ". ", spot.Rating.UserRatings.length);
spot.Rating.UserRatings.forEach(ur =>
docRef.collection("userRatings").add(
{
date: ur.Date,
username: ur.UserName,
review: ur.Review,
note: ur.Note,
reviewSource: ur.ReviewSource
}).then(function (subDocRef) {
console.log("Review ID ", subDocRef.id, " written");
}).catch(function (errorReview) {
console.error("Error adding document: ", errorReview);
}));
})
.catch(function (error) {
console.error("Error adding document: ", error);
});
- У меня нет отображаемой ошибки
- У меня никогда не было сообщения " Идентификатор рецензии ... записано "
- Очевидно, я заканчиваю написанным спот-документом, но без какой-либо оценки пользователя.
Я полагаю, что неправильно добавляю подколлекцию .
Что я сделал не так?