【问题标题】:How do I get data on a specific id from firestore in react?如何在反应中从 Firestore 获取特定 ID 的数据?
【发布时间】:2021-03-03 07:46:41
【问题描述】:

我试图弄清楚如何仅从 firestore 的一个 id 获取数据。单击我的编辑按钮时,我希望我的反应网站路由到另一个页面,在该页面中,我的输入字段填充了来自特定 ID 的值。点击编辑按钮后,我已经解决了如何从我的 url 中的 firestore 的特定 id 获取我的 id。

如何仅从我单击的特定 id/url 中弹出的相同 id 中获取数据?

工作正常以获得规范。 url中的id。

但是,当尝试从 firestore 的特定 id 获取所有数据时,我失败了。这是我失败的代码。

const _id = props.match.params.id;
console.log("Logged data in edit:", _id);

const ref = firebase.firestore().collection("suggestions").doc(_id); 

function getRestaurants() {
    ref.get().then(querySnapshot => setData((querySnapshot).data()))
   console.log(ref.data)
}

我正在获取数据,但我无法编写/编辑输入字段。

【问题讨论】:

    标签: javascript reactjs google-cloud-firestore react-hooks


    【解决方案1】:

    .doc().get() 返回一个 querySnapshot,它返回一个 DocumentSnapshot,我不认为你的 ``(querysnopshot).data()```做你想要的。如果没有关于该片段的范围/上下文的更多信息,很难说什么是有效的。我假设 setData 是在某个地方定义的?

    此外,ref.data() 不是一个东西 - ref 不会被 .get() 方法更改或更新。同样,.get() 的结果(它不是查询)在 .then() 之外不可用

    我希望你需要至少

    const _id = props.match.params.id;
    console.log("Logged data in edit:", _id);
    
    const ref = firebase.firestore().collection("suggestions").doc(_id); 
    
    function getRestaurants() {
        ref.get().then(DocumentSnapshot => {
           const docData = querySnapshot.data();
           setData(docData);
          console.log(docData);
       })
    }
    

    【讨论】:

    • 我的代码得到了完全相同的结果。
    • 编辑/编写 HTML 字段(我相信你在问这个问题)与 Firestore 完全没有任何关系,而且你没有在这里显示任何内容。
    猜你喜欢
    • 2021-02-23
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 2020-03-29
    • 1970-01-01
    相关资源
    最近更新 更多