Итак, позвольте мне начать с того, что документация Google Firebase ужасна. Я пытаюсь добавить дочерние значения в список, хранящийся в документе в Firestore db, когда пользователь добавляет товар в свою корзину на сайте электронной коммерции. Самая простая вещь (или должна быть). Во всей документации сказано, что нужно использовать .pu sh (), и нет ни одного практического примера того, как это реализовать. Мне недостаточно понять, как его использовать:
// Create a new post reference with an auto-generated id
var newPostRef = postListRef.push();
newPostRef.set({
// ...
});
Откуда берется postListRef и как мне создать ссылку, которая работает с .pu sh ()? В последние 3 дня я не мог понять, как использовать эту функцию, от получения ссылки на базу данных до добавления значения. Ниже приведены два способа, которыми я пытался его использовать. Это такой глупо простой вопрос, и он сводит меня с ума, что после нескольких часов поиска в Google нигде не было ни одного полного примера. Пожалуйста, предложите полное объяснение с примером кода, который может показаться вам ненужным уровнем детализации о том, как реализовать .pu sh () с firestore в ванильном javascript сценарии переднего конца! Бонусные баллы, если вы можете объяснить, как удалить один элемент из списка.
Ссылки на документацию: https://firebase.google.com/docs/database/web/lists-of-data, https://firebase.google.com/docs/database/admin/save-data
const db = firebase.firestore();
//set with a function that checks to see if user is logged in
var userUid;
//set if the user is not signed in to persist the cart
var guestUid;
function addItemToCart() {
console.log("Add item to cart triggered..");
const productName = "Assorted Oranges";
const productId = "123";
if (userUid != null) {
var testRef = firebase.firestore().collection('Carts').doc(userUid).push();
testRef.set({
productName: productName,
productId: productId });
} else {
guestUid = getUUID();
var testRef = db.push({
productName: productName,
productId: productId
});
}
}
Независимо от того, как я пытаюсь его использовать, я получаю вариант ошибки: .pu sh () не является функцией, подобной:
product-single:126 Uncaught TypeError: firebase.firestore(...).collection(...).doc(...).push is not a function
at addItemToCart (product-single:126)