当我在angular和Firebase
中尝试此删除功能时/item.component.ts
import { Component, OnInit } from '@angular/core';
import { FirebaseService } from '../../services/firebase.service';
import { Router} from '@angular/router';
import * as firebase from 'firebase';
@Component({
selector: 'app-item',
templateUrl: './item.component.html',
styleUrls: ['./item.component.css']
})
export class ItemComponent implements OnInit {
id:any;
constructor(
private firebaseService: FirebaseService,
private router: Router
) { }
ngOnInit() {
}
onDeleteClick(){
this.firebaseService.deleteItem(this.id);
this.router.navigate(['Items']);
}
}
on firebase服务
/firebase.service.ts
deleteItem(id){
return this.items.remove(id);
}
控制台返回此错误
Firebase Storage: Invalid argument in `child` at index 0: Expected string
该记录已从Firebase中删除,但它始终显示该错误。 有什么想法吗?
感谢
答案 0 :(得分:2)
来自Firebase API: https://firebase.google.com/docs/reference/js/firebase.database.Reference#child
因此child
方法只能得到String
,这是:
从此位置到所需子位置的相对路径。
它会返回对Firebase存储中孩子所在位置的引用。您收到的控制台错误意味着传递给child
的参数不是String
。
在您的情况下,如果id
是像Alex在评论中指出的数字,则可能会导致该错误。