【问题标题】:How to access data from within a key如何从密钥中访问数据
【发布时间】:2019-02-14 19:57:03
【问题描述】:

我正在尝试访问一个键引用的数据对象。在这种情况下,我们将“申请人”数据嵌套在一个事件中。我正在尝试使用该数据创建一个新对象。我可以访问顶级事件数据和每个申请人的密钥,但我不知道如何访问申请人数据 - 例如,申请日期、备注和状态。

我想说一些类似 applicationStatus = key.status 的东西,但这不起作用。

onCreateApplication () {
  fb.eventsCollection.orderBy('startDate', 'desc').onSnapshot(querySnapshot => {
  let appsArray = []

  querySnapshot.forEach(doc => {
    let event = doc.data()
    let eventId = doc.data().id
    let eventTitle = doc.data().title
    let eventSlug = doc.data().slug
    let applications = doc.data().applicants
    let appStatus = doc.data().applicants.status
    for (var key in doc.data().applicants) {
      let eventData = {
        id: eventId,
        title: eventTitle,
        slug: eventSlug
      }
      let userData = {
        id: key
      }
      let application = {
        event: eventData,
        user: userData,
        status: key.status????????,
        appliedDate: key.created??????
      }
      fb.applicationsCollection.add(application)
    }

  })


  })
},

【问题讨论】:

  • I'd like to say something like applicationStatus = key.status, but that doesn't work. 是什么意思?你遇到了什么错误?
  • 这令人困惑:let applications = doc.data().applicants;让 appStatus = doc.data().applicants.status; .applicants 是对象还是数组?你能分享一个 doc.data() 的 json 对象吗?
  • 大卫,doc.data() 里面有很多内容...这是顶部,还显示“申请人”接受段:2322209 addWaiver:“”ageRequirement:“18”申请人:{01YsU8aPIfPd725ygJLGUmbnmOk2: {...},0DgIQ0mGYmO2frPpylS6gmvSjPP2:{...},0Fhg4qX8QTZKBdxVdvjdWHSKqpe2:{...},0qLbz6n7whQSphbPplVLjwzQjlP2:{...},0rnOT3DUqudNXv7zjGF6wvOFons1:{...},...} appliedSegment:2322213个barbacks:真调酒师:真跨度>
  • 然后在“申请人”中是每个应用程序:
  • 申请者:0DgIQ0mGYmO2frPpylS6gmvSjPP2:createdAt:“2018 年 5 月 15 日星期二 19:50:54 GMT-0700 (PDT)”日期:“2018 年 5 月 19 日星期六 16:20:26 GMT-0700(太平洋夏令时间) )" drop: "Fri May 25 2018 16:55:31 GMT-0700 (PDT)" media: true note: "" shift: "fullTime" signature: "Marcello Sanchez III" status: "DROP" waiver: true跨度>

标签: javascript vue.js


【解决方案1】:

这是我对您的数据结构发生了什么的最佳猜测。我希望这会有所帮助,请发表评论以澄清其他任何事情。

onCreateApplication(){
  fb.eventsCollection.orderBy('startDate', 'desc').onSnapshot(querySnapshot => {
    querySnapshot.forEach(doc => {
      let data = doc.data();    
      let applications = Object.keys(data.applicants).map(function(id){
        let application = {
          event: {
            id: data.id,
            title: data.title,
            slug: data.slug
          },
          user: {
            id: id
          },
          status: data.applicants[id].status,
          appliedDate: data.applicants[id].created
        })

        fb.applicationsCollection.add(application);

        return application;
      })
    })
  })
}

【讨论】:

    猜你喜欢
    • 2012-10-31
    • 2017-10-02
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多