Reference.push失败:第一个参数在属性'confirm.orderTotal'中包含undefined

时间:2017-09-20 13:10:17

标签: angular typescript firebase firebase-realtime-database ionic3

我在确认Ionic 3 application的待付款方面遇到了问题。

每当我按下我的按钮"Paid",时,它会生成此error"Reference.push failed:第一个参数包含未定义的属性'confirm.orderTotal'..."我的目的是将我的待处理订单带到确认{如果我点击table

,我的Firebase中会{1}}

任何人都可以帮我解决这个错误吗?谢谢!

My Firebase Data

我的打字稿编码

button.

我的HTML

export class CashierconfirmPage {
  nav: any;

  confirmItem = {} as orderItem;
  confirmItemRef$: FirebaseListObservable<orderItem[]>

  orderItemRef$: FirebaseListObservable<any>

    constructor(public cart_data: CartData, public navCtrl: NavController, 
      public navParams: NavParams,
      private database: AngularFireDatabase,) {

      this.orderItemRef$ = this.database.list('pendingorders');

      this.confirmItemRef$ = this.database.list('confirm');
    }

    addConfirmItem(confirmItem: orderItem){

      this.confirmItemRef$.push({
        // Ordermenu: this.cart_data.getCart(),
        orderTotal: this.confirmItem.orderTotal,
        orderNumber: this.confirmItem.orderNumber
      }); 
          }

}

    

<ion-navbar>
    <ion-title>Pending payment orders</ion-title>
</ion-navbar>

1 个答案:

答案 0 :(得分:2)

&#34;您好,我的英语可能不正确,我来自巴西,我使用Goolgle翻译,抱歉。&#34;

关于你的问题,我面对同样的问题,我能够解决它。 Firebase不接受undefined,并且null为空表单。你应该添加&#34; ||空&#34;

例如:

addConfirmItem(confirmItem: orderItem){
  this.confirmItemRef$.push({
    // Ordermenu: this.cart_data.getCart(),
    orderTotal: this.confirmItem.orderTotal || null,
    orderNumber: this.confirmItem.orderNumber || null
  }); 
}

我希望我能帮助并帮助其他遇到同样问题的人。 拥抱!