【发布时间】:2020-12-22 08:53:38
【问题描述】:
我试图从 Firestore 中删除数据,获取和添加数据工作正常,但是当我尝试删除数据时,它并没有被删除,甚至在控制台上也没有显示任何错误。我们将不胜感激。
我的服务.ts
userscollection: AngularFirestoreCollection<User>;
users: Observable<User[]>;
userDoc: AngularFirestoreDocument<User>;
constructor(private afs: AngularFirestore) {
this.userscollection = this.afs.collection('poetry');
this.users = this.userscollection.snapshotChanges().pipe(map(actions => actions.map(a => {
const data = a.payload.doc.data();
const id = a.payload.doc.id;
return { id, ...data };
})))
}
getUsers() {
return this.users;
}
addUser(user: User) {
this.userscollection.add(user);
}
deleteUser(user: User) {
this.userDoc = this.afs.doc('users/${user.id}');
this.userDoc.delete();
}
}
组件.ts
export class PoetryComponent implements OnInit {
user: User = {
id: '',
name: '',
content: ''
}
users: User[];
constructor(private afs: AngularFirestore, public fb: FormBuilder, private userService: CrudService)
{}
ngOnInit() {
this.userService.getUsers().subscribe(users => {
this.users = users;
})
}
onSubmit() {
this.userService.addUser(this.user);
this.user.name='';
this.user.content='';
}
deleteUserss(event, user) {
this.userService.deleteUser(user);
}
}
用户.ts
export class User {
public constructor(public id: string,public name: string,public content: string) {
}
}
【问题讨论】:
-
您可能应该在此处将集合名称更改为
users:this.userscollection = this.afs.collection('poetry'); -
对不起,但在我看来,这不会有什么不同,因为诗歌是我在数据库中的收藏名称,如果我将其更改为用户,它不会获取数据。
-
this.userDoc = this.afs.doc('users/${user.id}');你不是在删除时使用users集合名称吗? -
this.userDoc = this.afs.doc('users/${user.id}');应该是this.userDoc = this.userscollection.doc(user.id);我猜... -
CollectionReference.doc() 出现错误要求其第一个参数为非空字符串类型,但它是:“”
标签: angularjs angular firebase google-cloud-firestore angularfire