#angular #typescript #firebase #google-cloud-firestore #favorites
#angular #typescript #firebase #google-облако-firestore #Избранное
Вопрос:
У меня есть эта база данных firebase, и я пытаюсь сохранить в базе данных каждый продукт, который я выбираю для избранного, для текущего пользователя, который получает доступ в этот момент. Проблема в том, что я могу установить только 1 документ, но я хочу иметь отдельно каждый новый документ в избранном документе.
Я хочу передать свой параметр ‘uniqID’, который является идентификатором продукта, который я выбираю в избранное, в базу данных и автоматически создать новый документ с его идентификатором .. я пробовал со структурой es6, но не сработало.
опорному пункту.услуги.ц
async addFavorites(
uniqID: string,
favorite_title: string,
favorite_description: string,
favorite_image: string,
favorite_tag: string,
favorite_stoc: boolean,
favorite_reducere: number,
favorite_price: number,
favorite_userId: string
): Promise<void> {
var user = firebase.auth().currentUser;
if (user != null) {
return await this.firestore
.collection("users")
.doc(user.uid)
.set(
{
favoriteID: {
// here i need to multiply this array by each product i click using parameter "uniqID"
uniqueID: {
favorite_title: favorite_title,
favorite_description: favorite_description,
favorite_image: favorite_image,
favorite_tag: favorite_tag,
favorite_stoc: favorite_stoc,
favorite_reducere: favorite_reducere,
favorite_price: favorite_price,
favorite_userId: favorite_userId,
isFavorite: true,
},
},
},
{ merge: true }
)
.catch((err) => {
console.log(err);
});
} else {
console.log("Please Log In to add favorite!");
}
}
Ответ №1:
Вам нужно использовать обозначение в квадратных скобках следующим образом:
const favoriteObj = {};
favoriteObj[uniqId] = {
favorite_title: favorite_title,
favorite_description: favorite_description,
favorite_image: favorite_image,
favorite_tag: favorite_tag,
favorite_stoc: favorite_stoc,
favorite_reducere: favorite_reducere,
favorite_price: favorite_price,
favorite_userId: favorite_userId,
isFavorite: true,
};
return await this.firestore
.collection('users')
.doc(user.uid)
.set({ favoriteID: favoriteObj }, { merge: true })
.catch((err) => {
console.log(err);
});