【问题标题】:Firebase Realtime Database - Adding query to Axios GET request?Firebase 实时数据库 - 向 Axios GET 请求添加查询?
【发布时间】:2021-06-03 11:16:17
【问题描述】:

在我的 React 应用程序中,我有一个 axios.get 请求,如下所示:

    axios.get('https://[app name here].firebaseio.com/shoppingCart.json')

它会从 Firebase 实时数据库中的“shoppingCart”端点返回所有内容:

例如,如果我只想返回“uid”为“asdf1”的记录,如果可能的话,我将如何将适当的查询添加到我的 GET 请求中?

我还尝试按照https://firebase.google.com/docs/database/rest/retrieve-data 此处的文档(关于按指定子键进行过滤)并构建以下请求,但我收到 400 bad request 错误。

axios.get('https://[app name here].firebaseio.com/shoppingCart.json?orderBy="uid"&equalTo="asdf1"')

【问题讨论】:

  • 乍一看这对我来说很好。响应正文中有更多详细信息吗?
  • 嗯,这是我将其记录到控制台时的错误消息:错误:在 XMLHttpRequest 的结算 (settle.js:17) 处的 createError (createError.js:16) 处请求失败,状态代码为 400。处理负载(xhr.js:62)
  • 这看起来像 axios 消息,而不是来自 HTTP 响应的正文。另一种实现相同的方法:您能否在浏览器中重现 URL 调用的问题,因此无需任何 JavaScript 代码?如果是这样,你能分享那个网址吗?如果您担心泄露您的实际数据库,您可以创建一个仅用于共享 URL 的新项目,并在问题解决后将其删除。
  • 好的,我在浏览器中调用了该 URL,并收到一条不同的错误消息,似乎它可能会导致某个地方:索引未定义,添加 \".indexOn\": \"uid\",对于路径 \"/shoppingCart\",到规则
  • 我也很怀疑。 ;-) 很高兴听到你把它修好了。想要发布自我回答吗?

标签: firebase rest firebase-realtime-database axios


【解决方案1】:

非常感谢用户 Frank van Puffelen 指导我找到解决方案。

我对浏览器进行了有问题的 URL 调用,收到的错误消息告诉我,我需要在“shoppingCart”的实时数据库规则中将“uid”定义为我的索引。

这样做之后,我能够成功地收到来自我的 URL 调用的响应,该响应被我传入的“uid”正确过滤。

【讨论】:

    猜你喜欢
    • 2018-08-04
    • 2020-07-11
    • 2020-11-14
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 2019-07-31
    相关资源
    最近更新 更多