从Firestore提取数据会导致有序数据更新不正确

时间:2019-04-04 16:41:52

标签: reactjs redux google-cloud-firestore

我有一个名为“ guests”的列表,一切正常,直到我尝试从特定表中删除一个来宾。 要删除,我从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 :(得分:0)

不确定我是否理解正确,请尝试

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 });
}

答案 1 :(得分:0)

在Java中,我只是将列表放在onCreate() lifecycle 内,因为onStart()的生命周期始终使我的列表排序不正确。我不知道reactjs,但是 reactjs

的生命周期可能是相同的