【发布时间】:2021-06-04 11:40:13
【问题描述】:
如何检查一个 id 是否在我的 firebase 集合中? 我需要检查 item.id 是否在包含多个 id 的集合“收藏夹”中。
如果它在内部,我需要分配一个值 true;如果没有具有相同 id 的值,我需要分配一个 false。
【问题讨论】:
标签: reactjs firebase google-cloud-firestore
如何检查一个 id 是否在我的 firebase 集合中? 我需要检查 item.id 是否在包含多个 id 的集合“收藏夹”中。
如果它在内部,我需要分配一个值 true;如果没有具有相同 id 的值,我需要分配一个 false。
【问题讨论】:
标签: reactjs firebase google-cloud-firestore
据我所知,如果不实际获取文档,就无法“检查”集合中是否存在文档。当您尝试get 文档时,它会返回一个doc - 带有一个exists 变量。
因此您可以像这样检查文档是否存在(使用 Promises):
const doesDocExist = (docID) => {
return firestore().collection("cities").doc(docID).get().then((doc) => {
return doc.exists
})
}
//Call the function to check if doc exists:
let doesSanFranciscoExist = await doesDocExist("SF")
请注意,在上述函数中,您正在尝试使用 ID 获取文档。
或者,如果您想通过一次读取检查是否存在多个文档,您可以使用 Cloud Functions 在数据库中的其他位置维护文档 ID 列表。
【讨论】:
loading 的状态变量以及另一个名为 docExists 的状态变量。当 Promise 解决时,您可以更新两个状态变量。