Привет! Я следую этому учебнику и теперь не могу удалить запись из базы данных Firebase в реальном времени.
(обновлено 11 июня 2018 г.) - ранее я подозревал, что произошла эта ошибкакогда я использую FirebaseListObservable, однако оказывается, что ошибка также возникает при использовании AngularFireList.
Использование AngularFireList
Runtime Error
_this.produkkuListRef.remove is not a function
Эта страница имеет функцию удаления:
fleks-bisnis-produkku.module.ts
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, ActionSheetController } from 'ionic-angular';
import { AngularFireDatabase, AngularFireList } from 'angularfire2/database';
import { ProdukItem } from '../../models/produk-item/produk-item.interface';
@IonicPage()
@Component({
selector: 'page-fleks-bisnis-produkku',
templateUrl: 'fleks-bisnis-produkku.html',
})
export class FleksBisnisProdukkuPage {
produkkuList: AngularFireList<ProdukItem[]>;
constructor(public navCtrl: NavController, public navParams: NavParams, private database: AngularFireDatabase,
private actionSheetCtrl: ActionSheetController) {
this.produkkuListRef = this.database.list('produk-list').valueChanges();
console.log(this.produkkuListRef);
}
selectProdukItem(produkItem: ProdukItem){
this.actionSheetCtrl.create({
title: `${produkItem.itemName}`,
buttons:[
{
text: 'Edit',
handler: () => {
// send the user to the EditProdukItemPage and pass the key as a parameter
}
},
{
text: 'Delete',
role: 'destructive',
handler: () => {
//delete the current ProdukItem, passed in via the parameter
console.log(this.produkkuListRef);
this.produkkuListRef.remove(produkItem.$key);
}
},
{
text: 'Cancel',
role: 'cancel',
handler: () => {
console.log("The user has selected the cancel button");
}
}
]
}).present();
}
pushToTambahProduk(){
this.navCtrl.push('FbTambahProdukPage')
}
ionViewDidLoad() {
console.log('ionViewDidLoad FleksBisnisProdukkuPage');
}
}
Использование FirebaseListObservable
Runtime Error
_this.produkkuListRef$.remove is not a function
Эта страница имеет функцию удаления:
fleks-bisnis-produkku.module.ts
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, ActionSheetController } from 'ionic-angular';
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
import { ProdukItem } from '../../models/produk-item/produk-item.interface';
@IonicPage()
@Component({
selector: 'page-fleks-bisnis-produkku',
templateUrl: 'fleks-bisnis-produkku.html',
})
export class FleksBisnisProdukkuPage {
produkkuListRef: FirebaseListObservable<ProdukItem[]>;
constructor(public navCtrl: NavController, public navParams: NavParams, private database: AngularFireDatabase,
private actionSheetCtrl: ActionSheetController) {
this.produkkuListRef$ = this.database.list('produk-list').valueChanges();
console.log(this.produkkuListRef$);
}
selectProdukItem(produkItem: ProdukItem){
this.actionSheetCtrl.create({
title: `${produkItem.itemName}`,
buttons:[
{
text: 'Edit',
handler: () => {
// send the user to the EditProdukItemPage and pass the key as a parameter
}
},
{
text: 'Delete',
role: 'destructive',
handler: () => {
//delete the current ProdukItem, passed in via the parameter
console.log(this.produkkuListRef$);
this.produkkuListRef$.remove(produkItem.$key);
}
},
{
text: 'Cancel',
role: 'cancel',
handler: () => {
console.log("The user has selected the cancel button");
}
}
]
}).present();
}
pushToTambahProduk(){
this.navCtrl.push('FbTambahProdukPage')
}
ionViewDidLoad() {
console.log('ionViewDidLoad FleksBisnisProdukkuPage');
}
}
Другие ссылки
это мой интерфейсный файл, который импортируется на страницу выше
produk-item.interface.ts
export interface ProdukItem{
$key?: string;
itemName: string;
itemHarga: number;
}
это мой файл package.json:
{
"name": "go-fleksales",
"version": "0.0.1",
"author": "Ionic Framework",
"homepage": "http://ionicframework.com/",
"private": true,
"scripts": {
"clean": "ionic-app-scripts clean",
"build": "ionic-app-scripts build",
"lint": "ionic-app-scripts lint",
"ionic:build": "ionic-app-scripts build",
"ionic:serve": "ionic-app-scripts serve"
},
"dependencies": {
"@angular/animations": "5.2.10",
"@angular/common": "5.2.10",
"@angular/compiler": "5.2.10",
"@angular/compiler-cli": "5.2.10",
"@angular/core": "5.2.10",
"@angular/forms": "5.2.10",
"@angular/http": "5.2.10",
"@angular/platform-browser": "5.2.10",
"@angular/platform-browser-dynamic": "5.2.10",
"@ionic-native/core": "4.7.0",
"@ionic-native/splash-screen": "4.7.0",
"@ionic-native/status-bar": "4.7.0",
"@ionic/pro": "1.0.20",
"@ionic/storage": "2.1.3",
"angularfire2": "^5.0.0-rc.10",
"firebase": "^5.0.4",
"ionic-angular": "3.9.2",
"ionicons": "3.0.0",
"rxjs": "^6.2.0",
"rxjs-compat": "^6.2.0",
"sw-toolbox": "3.6.0",
"zone.js": "0.8.26"
},
"devDependencies": {
"@ionic/app-scripts": "3.1.9",
"typescript": "~2.6.2"
},
"description": "An Ionic project"
}
Я искал в Google, и этоКажется, мой код правильный.Что может быть причиной этой ошибки?
Большое спасибо за вашу помощь.