Mar*_*Mar 7 javascript firebase typescript firebase-realtime-database angular
我目前在处理我在我的 Angular 应用程序中使用 REST 对我的 firebase 实时数据库制作的响应数据时遇到问题。只是作为序言:我会说实话。我正在慢慢学习 angular 和 firebase。
我的数据库中有一个名为“挂单”的子路由
https://i.imgur.com/C1EXaEi.png
那里的每个唯一 ID 都与当时发出采购订单的登录用户相匹配。
为了获取我所有的挂单,我向我的数据库发送了一个 GET http 请求,端点是 pending-orders.json,正如 firebase 文档所建议的那样。
这给了我一个响应,我认为它将是一个数组。而是一个带有嵌套对象的对象。我记录了响应,即:
{G2v12VlKwNPXwtUDV4g41PIqHZx1: {…}, hYgflcf7WGR6wLrCPkAL1B4MbZI3: {…}}
不过,我需要的是一个包含子项(该响应对象中的键的值)的数组。我不完全确定如何获得一个。如何实现这一目标?
作为旁白...
事实上,我什至不确定如何提取唯一 ID 由 firebase 本身生成的子节点(通过 POST 请求)。
除非我跳过 REST API 文档中的某些内容,否则它们涵盖了新插入的子节点如何通过 POST 请求获得自己的唯一 ID,但稍后不讨论如何特别或通过集合访问这些子节点(就像我试图做)。就我而言,客户无法知道那些唯一的 ID(或我自己生成的自定义 ID)。
由于 TypeScript 只是 JavaScript,因此您可以执行以下操作:
const pendingOrdersResponse = await firebase.handwaving.pendingOrders();
const pendingOrdersTransformed = Object.keys(pendingOrdersResponse).map(id => {
return { uuid: id, ...pendingOrdersResponse[id] };
});
Run Code Online (Sandbox Code Playgroud)
然后pendingOrdersTransformed将是一个数组,其中您的数据作为数组中的普通旧式 JavaScript 对象,生成的 ID 作为数组中uuid每个对象的字段。pendingOrder
| 归档时间: |
|
| 查看次数: |
271 次 |
| 最近记录: |