【问题标题】:Get value of Firebase DB object as an object and change its keys?将 Firebase DB 对象的值作为对象获取并更改其键?
【发布时间】:2021-11-09 14:30:03
【问题描述】:

我想尝试从 Firebase 实时数据库中获取整个 ref 到一个对象中,同时更改它的一些属性:

  const [events, setEvents] = React.useState([]);
  get(child(ref(getDatabase()), `events`)).then(snap => {
   setEvents([snap.val()])
  })
  // creating my object:
  events.map(ev => Object.keys(ev).map(item => ({
    title: ev[item].txt, // the original proparty from firebase is "txt", I wabt to get it as "title"
    image: ev[item].imgUrl,
    description: ev[item].description
  })))

它返回了这个:

有一个额外的“0”父母,但我怎样才能得到它:

这是json:

  "events" : {
    "-MmZ5gjaPgQZj58NX3Us" : {
      "imgFile" : "77mhw.jpg",
      "imgUrl" : "https://firebasestorage.googleapis.com/v0/b/zevik-4a379.appspot.com/o/77mhw.jpg?alt=media&token=e530272c-6e36-409d-ac68-0042ac17b971",
      "txt" : "sometxt"
    },
    "-MmZ5grbFb-6Bj5ew7Gv" : {
      "imgFile" : "bptmli.jpg",
      "imgUrl" : "https://firebasestorage.googleapis.com/v0/b/zevik-4a379.appspot.com/o/bptmli.jpg?alt=media&token=5f99b26c-e184-43af-bc8b-95484b94f6a5",
      "txt" : "sometxt"
    },
    "-MmZ5gxeoHGTUDZ328RE" : {
      "imgFile" : "xj5fi.jpg",
      "imgUrl" : "https://firebasestorage.googleapis.com/v0/b/zevik-4a379.appspot.com/o/xj5fi.jpg?alt=media&token=7058ea83-1abb-47f7-bcf3-eae2fb2af679",
      "txt" : "sometxt"
    }
  }

谢谢!

【问题讨论】:

  • 您能否编辑您的问题以在数据库中的events 处显示 JSON(作为文本,请不要截图)?您可以通过单击Firebase Database console 上溢出菜单 (⠇) 中的“导出 JSON”链接来获取此信息。
  • @FrankvanPuffelen 刚刚做了 :)

标签: javascript firebase firebase-realtime-database


【解决方案1】:

我认为额外的0 级别来自您在此调用中使用[] 的事实:

setEvents([snap.val()])

据我所知应该是:

setEvents(snap.val())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-11
    • 2017-06-26
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    相关资源
    最近更新 更多