【问题标题】:firebase realtime database to update an entry after filter using angularfire 2firebase 实时数据库在使用 angularfire 2 过滤后更新条目
【发布时间】:2018-09-25 07:56:00
【问题描述】:

实时数据库中的数据结构如下:

"orders" : {
    "-LM5p4tl7Og_PMJOspZ-" : {
      "customer" : {
        "_name" : "Vik Kumar",
        "_uid" : "oSEYj0zrkhPCk9r7uwyOOkHcqe53"
      },
      "order" : {
        "_orderNumber" : "VikKumar-26954",
        "_orderStatus" : "Pending",
        "_orderTotal" : 500,
      }
    },
    "-LM5s1wRCvqWA1vsZONy" : {
      "customer" : {
        "_name" : "Vik Kumar",
        "_uid" : "oSEYj0zrkhPCk9r7uwyOOkHcqe53"
      },
      "order" : {
        "_orderNumber" : "VikKumar-11423",
        "_orderStatus" : "Pending",
        "_orderTotal" : 500,
      }
    },
    "-LM5sOHzjLeqFGFleMxq" : {
      "customer" : {
        "_name" : "Vik Kumar",
        "_uid" : "oSEYj0zrkhPCk9r7uwyOOkHcqe53"
      },
      "order" : {
        "_orderNumber" : "VikKumar-63772",
        "_orderStatus" : "Pending",
        "_orderTotal" : 500,
      }
    }
}

我在我的 ionic 应用程序中使用 angularfire2 并过滤如下几个订单:

getPendingOrders(dateStr:string){
    return new Promise((resolve, reject) =>
      {
        this.db.list('orders',
                     ref =>  ref.orderByChild("order/_date").equalTo(dateStr)
       ).valueChanges().subscribe(
        res => {
          resolve(res)
        },
        err => {
          console.log(err)
          reject(err)
        }
      )
      })
  }

上面的查询给了我如下的响应

[{"customer": {}, "order": {}}, {"customer": {}, "order": {}}]

我可以在 UI 中很好地呈现它,我希望最终用户能够更新属性“_orderStatus”的值。问题是我查询数据的方式丢失了识别特定对象以更新它的密钥。请指教

【问题讨论】:

  • 这方面有什么帮助吗?

标签: firebase firebase-realtime-database angularfire2


【解决方案1】:

好的,不确定这是否有帮助,我认为您已迁移到使用 AngularFire 5.0。调用 .valueChanges() 将返回一个没有任何元数据(例如项目键)的 Observable,您需要改用 .snapshotChanges() 调用:

this.db.list(...)
    .snapshotChanges()
    .map(changes => {
      return changes.map(change => ({key: change.payload.key, ...change.payload.val()}));
    })
    .subscribe(...)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 2016-11-16
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多