Удален массив firebase, добавляемый автоматически - PullRequest
0 голосов
/ 01 мая 2020

Я создаю коктейльное приложение, в котором пользователи могут сохранять, удалять рецепты. Сохранение в порядке, удаление, у меня возникли проблемы. Проблема заключается в том, что когда я удаляю объект, который хочу использовать с помощью arrayRemove () в хранилище, удаленный объект снова добавляется после удаления в течение секунды. Но иногда объект удаляется навсегда. Как вы можете себе представить, я хочу снять эту проблему и убедиться, что объект, который я удалил из массива, останется удаленным. Код из компонента, который извлекает содержимое и удаляет содержимое, выглядит следующим образом. Кто-нибудь может понять, почему это так?

import React, { useContext, useState, useEffect } from 'react';
import { Col, Row, Container } from 'react-bootstrap';
import NavBar from '../NavBar/NavBar';
import Footer from '../Footer/Footer';
import './SavedCocktailInstructions.css';
import { Link } from 'react-router-dom';
import { CocktailContext } from '../../context/CocktailContext';
import fire from '../../Config/firebase';
import { db } from '../../Config/firebase';
import firebase from 'firebase/app';

export default function SavedCocktailInstructions(props) {
    const [ cocktailInformation, setCocktailInformation ] = useState('');
    const nameOfDrink = props.match.params.name;
    const { uid } = useContext(CocktailContext);

    useEffect(() => {
        onAuthStateChange();
    }, []);

    function onAuthStateChange() {
        return fire.auth().onAuthStateChanged((user) => {
            if (user) {
                let userId = user.uid;
                fetchSavedData(userId);
            } else {
            }
        });
    }

    const fetchSavedData = (uid) => {
        db.collection('users').doc(uid).onSnapshot(function(doc) {
            let recipes = doc.data();
            const chosenCocktail = recipes.array.find((recipe) => recipe.strDrink === nameOfDrink);
            setCocktailInformation(chosenCocktail);
        });
    };

    const {
        strIngredient1,
        strIngredient2,
        strIngredient3,
        strIngredient4,
        strIngredient5,
        strIngredient6,
        strIngredient7,
        strIngredient8,
        strIngredient9,
        strIngredient10,
        strMeasure1,
        strMeasure2,
        strMeasure3,
        strMeasure4,
        strMeasure5,
        strMeasure6,
        strMeasure7,
        strMeasure8,
        strMeasure9,
        strMeasure10,
        strDrinkThumb
    } = cocktailInformation;

    const remove = () => {
        db.collection('users').doc(uid).update({
            array: firebase.firestore.FieldValue.arrayRemove(cocktailInformation)
        });
    };
    return (
        <div>
            <NavBar />
            <Container fluid className="SavedCocktailInstructions">
                <Row>
                    <Col xs={12} sm={6} md={6} className="SavedCocktailInstructions-image">
                        <img src={strDrinkThumb} alt="" className="SavedCocktailInstructions-image img-fluid" />
                    </Col>

                    <Col xs={12} sm={6} md={6} className="SavedCocktailInstructions-text">
                        <h1 className="font-style-1 ">{nameOfDrink}</h1>
                        <p>{`Served in a ${cocktailInformation.strGlass}`}</p>
                        <ul className="SavedCocktailInstructions-ul">
                            {strIngredient1 === null ? '' : <li>{`${strIngredient1}-${strMeasure1}`}</li>}
                            {strIngredient2 === null ? '' : <li>{`${strIngredient2}-${strMeasure2}`}</li>}
                            {strIngredient3 === null ? '' : <li>{`${strIngredient3}-${strMeasure3}`}</li>}
                            {strIngredient4 === null ? '' : <li>{`${strIngredient4}-${strMeasure4}`}</li>}
                            {strIngredient5 === null ? '' : <li>{`${strIngredient5}-${strMeasure5}`}</li>}
                            {strIngredient6 === null ? '' : <li>{`${strIngredient6}-${strMeasure6}`}</li>}
                            {strIngredient7 === null ? '' : <li>{`${strIngredient7}-${strMeasure7}`}</li>}
                            {strIngredient8 === null ? '' : <li>{`${strIngredient8}-${strMeasure8}`}</li>}
                            {strIngredient9 === null ? '' : <li>{`${strIngredient9}-${strMeasure9}`}</li>}
                            {strIngredient10 === null ? '' : <li>{`${strIngredient10}-${strMeasure10}`}</li>}
                        </ul>
                        <p>{cocktailInformation.strInstructions}</p>

                        <Link
                            onClick={() => remove(uid)}
                            exact
                            to="/saved"
                            className="SavedCocktailInstructions-remove-button"
                        >
                            Remove from saved?
                        </Link>
                    </Col>
                </Row>
            </Container>
            <Footer />
        </div>
    );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...