【问题标题】:How can I check if a doc exists in firebase? [closed]如何检查firebase中是否存在文档? [关闭]
【发布时间】:2021-06-04 11:40:13
【问题描述】:

如何检查一个 id 是否在我的 firebase 集合中? 我需要检查 item.id 是否在包含多个 id 的集合“收藏夹”中。

如果它在内部,我需要分配一个值 true;如果没有具有相同 id 的值,我需要分配一个 false。

【问题讨论】:

    标签: reactjs firebase google-cloud-firestore


    【解决方案1】:

    据我所知,如果不实际获取文档,就无法“检查”集合中是否存在文档。当您尝试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 列表。

    Get a document in Firestore

    【讨论】:

    • 我在控制台日志中检查了 doc.exists 的值,它根据 id 正确地假设为真或假,但我仍然不能在函数之外使用该布尔值,我尝试像这样做一个 if但即使在控制台日志中显示为假,它也始终作为真: {doesDocExist() ? ( true ) : ( false )}
    • 我已经添加了如何使用该函数 - 该函数返回一个 Promise,因为它正在从数据库中获取文档。所以你需要等待 Promise 解决。在您的 React 代码中,您可以添加一个名为 loading 的状态变量以及另一个名为 docExists 的状态变量。当 Promise 解决时,您可以更新两个状态变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    相关资源
    最近更新 更多