Извлечение данных из Firestore приводит к неправильному обновлению упорядоченных данных - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть список с именем «гости», все работает хорошо, пока я не попытаюсь удалить гостя из определенной таблицы. Для удаления я получаю данные таблицы из Firestore, фильтрую пользователя и снова обновляю их до Firestore. Когда я получаю данные из Firestore, вся таблица добавляется к заказанным «гостям». Это происходит каждый раз, когда я получаю данные, и я не могу понять, как они обновляются, потому что я просто фильтрую пользователя и обновляю его до Firestore.

Все работает, как и ожидалось, кроме этой проблемы, я могу удалить ее из «таблиц», но у «гостей» есть эта проблема.

Я пробовал несколько способов получить данные, но тот же результат.

Код:

onGuestDelete = async (id, tableId) => {
    const { firestore, auth } = this.props;
    const data = await firestore.get({ collection: 'guests', doc: auth.uid, subcollections: [{ collection: 'userTables', doc: tableId }] });
    const tableGuests = data.get('tableGuests').filter(guest => guest !== id);
    firestore.update({ collection: 'guests', doc: auth.uid, subcollections: [{ collection: 'userTables', doc: table.id }] }, { tableGuests });
}

После запуска GET_SUCCESS вы можете увидеть последний элемент массива (8).

enter image description here

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

В Java, я просто помещаю списки в onCreate() жизненный цикл , потому что жизненный цикл onStart() всегда мои списки упорядочены неправильно.Я не знаю responsejs, но это может быть то же самое для жизненного цикла actjs

0 голосов
/ 04 апреля 2019

Не уверен, правильно ли я вас понял, но попробуйте это

onGuestDelete = async (id, tableId) => {
    const { firestore, auth } = this.props;
    const data = await firestore.get({ collection: 'guests', doc: auth.uid, subcollections: [{ collection: 'userTables', doc: tableId }] });
     const tableGuests = data.get('tableGuests');
    const filteredGuests = tableGuests.filter(guest => guest !== id);
    firestore.update({ collection: 'guests', doc: auth.uid, subcollections: [{ collection: 'userTables', doc: table.id }] }, { filteredGuests });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...