【问题标题】:angularfire2 firebaseListObservable push dataangularfire2 firebaseListObservable 推送数据
【发布时间】:2018-04-20 21:09:14
【问题描述】:

我是使用 firebase 的新手,我正在使用 angularfire 在 ionic 和 Firebase 项目中工作。我想创建这个数据库

-|items
  -|itemId
    -|user: uid

但是,代码不起作用。没有错误消息,但无法将数据推送到数据库。这是我的代码

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';

import { AngularFireAuth } from 'angularfire2/auth';
import { AngularFireDatabase, firebaseListObservable } from 'angularfire2/database';
import { Item } from '../../models/item';
import { CustomerHomePage } from '../customer-home/customer-home';

// export class Item {
//   merknya: string;
//   type: string;
//   year: string;
//   place: string;
//   userId : string;
// }
@IonicPage()
@Component({
  selector: 'page-input-motor',
  templateUrl: 'input-motor.html',
})
export class InputMotorPage {
item = {} as Item ;
inputItem : firebaseListObservable<Item>=[] ;
userId : string ;

  constructor(
    private afDatabase: AngularFireDatabase,
    private afAuth: AngularFireAuth,
    public navCtrl: NavController,
    public navParams: NavParams) {
      this.afAuth.authState.take(1).subscribe(auth => {
      this.userId= this.afAuth.auth.currentUser.uid
    });
  }


  ionViewDidLoad() {
    console.log('ionViewDidLoad InputMotorPage');
  }

  getItem():firebaseListObservable<Item>{
  this.inputItem = this.afDatabase.list('Item/' ).valueChanges();
    return this.inputItem
}

  // Create a brand new item
  submit(item : Item) {
       this.item.userId = this.userId
       this.inputItem.push(this.item)
  }
}

你们能帮我解决我的问题吗?非常感谢你

【问题讨论】:

    标签: javascript firebase firebase-realtime-database ionic3 angularfire2


    【解决方案1】:

    看看上面的变化。你需要区分 AngularFireList 和 observable:

     fbList :any;
         constructor(
            private afDatabase: AngularFireDatabase,
            private afAuth: AngularFireAuth,
            public navCtrl: NavController,
            public navParams: NavParams) {
              this.afAuth.authState.take(1).subscribe(auth => {
              this.userId = this.afAuth.auth.currentUser.uid
            });
            this.fbList = this.afDatabase.list('items/' )
          }
    
    
          ionViewDidLoad() {
            console.log('ionViewDidLoad InputMotorPage');
          }
    
          getItem():firebaseListObservable<Item>{
          this.inputItem = this.fbList.valueChanges();
            return this.inputItem
        }
    
          // Create a brand new item
          submit(item : Item) {
               this.item.userId = this.userId
               this.fbList.push(this.item)
          }
    

    【讨论】:

    • @FajarKidut 如果答案对您有帮助,请将其标记为帮助他人的答案
    猜你喜欢
    • 1970-01-01
    • 2018-03-20
    • 2018-06-16
    • 2019-05-26
    • 2016-09-08
    • 2017-06-06
    • 1970-01-01
    • 2018-07-07
    • 2017-11-08
    相关资源
    最近更新 更多