gpt4 book ai didi

react-native - 删除 Firestore 中的文档不更新 onSnapshot

转载 作者:行者123 更新时间:2023-12-04 13:59:37 27 4
gpt4 key购买 nike

我正在 React Native 中从 firestore 获取项目列表。

如果更新了项目文档,我的列表会通过 onSnapshot 按预期刷新。但是如果文档被删除,我的列表不会刷新。

有没有办法让我捕捉已删除的文档?

this.unsubscribe = firebase.firestore().collection('bigItems').doc(id)
.collection('littleItems').onSnapshot(this.getItems)

getItems = (querySnapshot) => {
const items = [];

querySnapshot.forEach((doc) => {
firebase.firestore().collection('events').doc(doc.id).get()
.then(item => {
const { id } = item.data();
items.push({
id: item.id
});
this.setState({
items: items,
loading: false,
});
})
.catch(function (err) {
return err;
});
})
}

最佳答案

尝试以下方法是否适合您:

const dataRef = firebase.firestore()
.collection('bigItems').doc(id)
.collection('littleItems').onSnapshot(res => {

// Listen to change type here
res.docChanges().forEach(change => {

const docName=change.doc.id;
const docData=change.doc.data();

// Refer to any field in the document like:
// E.g. : data.name, data.text etc.
// i.e. (whatever fields you used for the document)

if (change.type === "added") {
// Append to screen
}
if (change.type === "removed") {
// Now, Manually remove from UI
// Data from state before snapshot is still here,
// use some reference in data to remove from screen.
}
});
});

关于react-native - 删除 Firestore 中的文档不更新 onSnapshot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53165609/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com