【问题标题】:Render data from Firebase Firestore in React在 React 中渲染来自 Firebase Firestore 的数据
【发布时间】:2020-03-02 05:02:15
【问题描述】:

所以我试图在我的应用程序中从 Firebase Firestore 数据库中呈现一些数据,我遵循了某个让我启动并运行的教程,但现在我正试图弄清楚如何从我自己的数据库中提取数据,那是另一回事。

这是我的代码块,我认为它将根据用户输入的控制号从 firestore 监听数据,现在控制号是硬编码的,然后我将弄清楚如何从表单中获取值.

//Code to Query data from Database
function SingleQuery() {
  const [drivers, setDrivers] = useState([]);

  useEffect(() => {
    const unsubscribe = firebase
      .firestore()
      .collection("drivers")
      .where("controlNumber", "==", "202003010850-014746") //get data according to control number
      .onSnapshot(snapshot => {
        const newDriver = snapshot.docs.map((doc) =>
          id: doc.id,
          ...doc.data()
        )
        });
        setDrivers(newDriver);
      });

    return () => unsubscribe();
  }, []);

  return drivers;
}

之后,它应该在这里渲染数据:

<div id="results-list">
  {drivers.map((driver) =>
    <ol key={driver.id}>
     <li>{driver.controlNumber}</li>
    </ol>
)}
</div>

现在我遇到了各种解析错误和意外标记。


大家好,这是更新。我现在一切都已启动并运行,但我想知道是否有人可以帮助我根据用户输入的控制号从 Firestore 查询数据。

<div className="violationQuery">
    <br />
    <br />
    <br />
    <h4>Enter Control Number</h4>
      <div className="searchBar" class="input-group-sm">
        <form>
          <input
           type="text"
           className="form-control"
           aria-label="Small"
           aria-describedby="inputGroup-sizing-sm"
           placeholder="Control Number"
           id="controlNum"
          />
           <br />
         <input className="btn btn-primary" type="submit" value="Submit" />
        </form>
</div>

我需要获取input的值,放到上面SingleQuery Hook中的where()方法中。

【问题讨论】:

  • 你能分享一下那些解析错误吗?并分享你如何使用 SingleQuery 钩子的代码。
  • 嗨,当然。这是 SingleQuery 的代码:` export const violationQuery = () => { const drivers = SingleQuery(); ` 在该代码下面是一个 return() ,其中包含搜索栏的代码和呈现数据的代码 这里还有一个解析错误:解析错误:类型转换表达式应该用括号括起来 它指向 SingleQuery 中“id:”中的冒号
  • 不要将该信息放在评论中,而是通过单击其下方的小edit 链接将其添加到您的问题中。
  • @FrankvanPuffelen 我的错。这是我第一次在这里问

标签: reactjs firebase google-cloud-firestore


【解决方案1】:

检查您的地图方法,语法不正确。我认为您正在尝试创建一个对象并将其返回。


//Code to Query data from Database
function SingleQuery() {
  const [drivers, setDrivers] = useState([]);

  useEffect(() => {
    const unsubscribe = firebase
      .firestore()
      .collection("drivers")
      .where("controlNumber", "==", "202003010850-014746") //get data according to control number
      .onSnapshot(snapshot => {
        const newDriver = snapshot.docs.map((doc) => {  
          return {   // returns a new Object
            id: doc.id,
            ...doc.data()
          };
        });
        setDrivers(newDriver);
      });

    return () => unsubscribe();
  }, []);

  return drivers;
}


【讨论】:

  • 你也许可以帮助我解决我的其他问题:(
  • 已添加我对您问题的回答
猜你喜欢
  • 2019-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-20
  • 1970-01-01
  • 2020-09-05
  • 2021-05-11
  • 2019-05-20
相关资源
最近更新 更多