【问题标题】:Reference.push failed: first argument contains undefined in property 'confirm.orderTotal'Reference.push 失败:第一个参数在属性“confirm.orderTotal”中包含未定义
【发布时间】:2018-03-01 13:40:36
【问题描述】:

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

每当我按下我的按钮"Paid", 时,它都会生成这个error"Reference.push failed: 第一个参数包含属性'confirm.orderTotal'..." 中的未定义,如果我点击,我的目的是把我的挂单带到我的Firebase 中的确认tablebutton.

谁能帮我解决这个错误?谢谢!

My Firebase Data

我的打字稿编码

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
      }); 
          }

}

我的 HTML

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

    <h2>Ordered Items:</h2>
    <li>
        <ul *ngFor="let ordermenu of item.Ordermenu">{{ordermenu.itemName}}</ul>
    </li>

    <div>
        <input type="text" ngDefaultControl [(ngModel)]="confirmItem.orderNumber" placeholder="{{item.orderNumber}}">
    </div>

    <div>
        <input type="text" ngDefaultControl [(ngModel)]="confirmItem.orderTotal" placeholder="{{item.orderTotal}}">
    </div>

    <button (click)="addConfirmItem(confirmItem)" ion-button clear small icon-right color="dark">
        Paid
    </button>

</ion-item>

【问题讨论】:

  • 验证是否所有字段都有值。

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


【解决方案1】:

“您好,我的英语可能不正确,我来自巴西,正在使用谷歌翻译,抱歉。”

关于您的问题,我也遇到了同样的问题,我能够解决它。 Firebase 不接受 undefined 和 yes null 作为空形式。您应该添加“|| null”。

例如:

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

我希望我已经帮助并且也帮助了其他遇到同样问题的人。 拥抱!

【讨论】:

    猜你喜欢
    • 2018-08-08
    • 2020-06-18
    • 2018-04-26
    • 2018-10-05
    • 2018-02-22
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多