IONIC 3-TypeError:Object(...)不是函数

时间:2018-07-25 14:43:22

标签: angular typescript firebase ionic-framework ionic3

我是Ionic和Firebase的新手,运行应用程序时出现此错误:

TypeError:Object(...)不是函数

那是代码的不同部分:

在“ ts”文件中:

items : AngularFireList<any[]>; 
itemArray = [];

this.items = afs.list("persons");

this.items.snapshotChanges().subscribe(actions =>{
actions.forEach(action=>{
let y = action.payload.toJSON();
y['$key'] = action.key;
this.itemArray.push(y as Person);
})
})

HTML:

<ion-item-sliding *ngFor = "let person of itemArray"> 
...

我已经安装了最新版本的firebase和angularfire2:

npm install firebase angularfire2 --save
npm install @firebase/app@latest --save

app.module.ts中的当前配置:

"angularfire2": "^5.0.0-rc.11",
    "firebase": "^5.3.0",
    "ionic-angular": "3.9.2",
    "ionicons": "3.0.0",
    "rxjs": "5.5.11",

1 个答案:

答案 0 :(得分:0)

确保您的函数调用返回非空值:

items : AngularFireList<any[]>; 
itemArray = [];

this.items = afs.list("persons");

if(this.items){
    this.items.snapshotChanges().subscribe(actions =>{
      actions.forEach(action=>{
        if(action && action.payload){
           let y = action.payload.toJSON();
           y['$key'] = action.key;
           this.itemArray.push(y as Person);
       }
    })
})

作为旁注,我建议不要使用angularfire。以我的经验,维护和更新它很头疼。 Firebase SDK本身为您提供了足够的功能。