Почему я не могу повторно добавить данные с тем же именем после удаления их с помощью Firebase? - PullRequest
0 голосов
/ 29 мая 2018

В моем приложении пользователи могут добавлять любимого, например, так:

  addLovedOne(event) {
    const {
      lovedOne,
    } = this.state;

    const unsubscribe = firebase.auth().onAuthStateChanged((user) => {
      if (user) {
        db.addLovedOne(user.uid, lovedOne)
          .then(() => {
            this.setState({ lovedOne: '' });
            this.refreshLovedOnes();
          })
          .catch(error => {
            this.setState(byPropKey('error', error));
          });
      } else {
        unsubscribe();
      }
    });

    event.preventDefault();
  }

Естественно, пользователи могут удалять любимых, например:

  removeLovedOne(event) {
    const lovedOne = event.target.id;

    const unsubscribe = firebase.auth().onAuthStateChanged((user) => {
      if (user) {
        const ref = firebase.database().ref(`users/${user.uid}/lovedOnes`);
        const removeLovedOne = ref.orderByChild('lovedOne').equalTo(lovedOne);

        removeLovedOne.on('value', (snapshot) => {
          const lovedOneId = snapshot.node_.children_.root_.key;

          db.removeLovedOne(user.uid, lovedOneId, lovedOne)
            .then(() => {
              this.refreshLovedOnes();
            })
            .catch(error => {
              this.setState(byPropKey('error', error));
            });
        });
      } else {
        unsubscribe();
      }
    });
  }

Вот как выглядят запросы:

export const addLovedOne = (userId, lovedOne) => (
  db.ref(`users/${userId}/lovedOnes`).push({
    lovedOne,
  })
);

export const removeLovedOne = (userId, lovedOneKey) => (
  db.ref(`users/${userId}/lovedOnes/${lovedOneKey}/lovedOne`).remove()
);

Вот как выглядит моя схема: enter image description here

Любая идея, почему я не могу добавитьлюбимый человек с таким же именем после удаления без обновления страницы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...