【问题标题】:Property 'toJSON' does not exist on type 'DatabaseSnapshot<any>'类型“DatabaseSnapshot<any>”上不存在属性“toJSON”
【发布时间】:2020-01-18 21:49:22
【问题描述】:

我正在测试本网站提供的代码:Ionic 4 Firebase CRUD,但遇到了“从列表数据中删除项目”部分的问题:

bookingRes.snapshotChanges().subscribe(res => {
  this.Bookings = [];
  res.forEach(item => {
    let a = item.payload.toJSON();
    a['$key'] = item.key;
    this.Bookings.push(a as Appointment);
  })
})

我收到一条错误消息,提示“'DatabaseSnapshot' 类型上不存在属性 'toJSON'。 类型“DatabaseSnapshotExists”.ts(2339) 上不存在属性“toJSON”。

据我所知,一切都是最新的

【问题讨论】:

    标签: javascript firebase ionic-framework google-cloud-firestore angularfire2


    【解决方案1】:

    尝试以下方法之一:

    let a = JSON.parse(item.payload);
    

    let a = item['payload'].toJSON();
    

    【讨论】:

    • 没有骰子,第一个建议给出“'DatabaseSnapshot' 类型的参数不可分配给'string' 类型的参数。'DatabaseSnapshotExists' 类型不可分配给'string' 类型'.ts(2345)",第二个给出了原始错误。
    • 然后尝试投射:let a: object= item.payload.toJSON() as object;
    • 遗憾的是,toJSON() 仍然会导致问题。
    【解决方案2】:

    我似乎缺少依赖项并重新安装了 Firebase 和 angular/fire,如该线程中所述:Github Firebase

    【讨论】:

      【解决方案3】:

      你可以试试这个。这是我能够找到避免使用不再存在的 toJSON 的唯一答案? let a = JSON.parse(JSON.stringify(item.payload));

      【讨论】:

        猜你喜欢
        • 2021-10-25
        • 2021-02-08
        • 2019-09-20
        • 2018-09-09
        • 2019-12-31
        • 2022-12-17
        • 2021-11-29
        • 1970-01-01
        • 2017-10-20
        相关资源
        最近更新 更多