4个月前我开始学习Angular编程。现在我正在使用Firestore数据库练习CRUD。我有这个错误,而我试图删除我的程序:
系统发生错误:10592 ERROR集合引用无效。集合引用的段数必须为奇数,但Notes/r5 GucE 9DETw 36 sJKCMgi的段数为2。
我试了好几种方法,但还是同样的错误。
这是我的HTML:
<div class="col-md-4" *ngFor="let note of notesData">
<div class="card card-body">
<h5 class="card-title">{{ note.title }}</h5>
<p class="text-muted">{{ note.description }}</p>
<div class="d-flex align-items-center">
<span class="mx-2">
<i class="bi bi-pencil-square" data-bs-toggle="modal"
data-bs-target="#editNotesModal"></i>
</span>
<span class="mx-2">
<i class="bi bi-trash" (click)="deleteNote(note)"></i>
</span>
</div>
我的TS文件:
noteForm!: FormGroup;
notesData: any;
noteObj: Note = {
id: '',
title: '',
description: ''
}
constructor(private fb: FormBuilder, private noteService: NoteService){
this.noteForm = this.fb.group({
title: ['', Validators.required],
description: ['', Validators.required]
})
}
ngOnInit(){
this.fetchAllNotes()
}
addNote(){
const { value } = this.noteForm
console.log(value);
this.noteObj.id = '',
this.noteObj.title = value.title,
this.noteObj.description = value.description
this.noteService.addNote(this.noteObj).then((note)=>{
if(note){
alert("Note Added Successfully")
}
})
this.noteForm.reset()
}
fetchAllNotes(){
this.noteService.getNotes().subscribe((res: Note[])=>{
console.log(res)
this.notesData = res;
})
}
deleteNote(note: Note){
let delConfirm = confirm('Delete current selected Note?');
if (delConfirm == true){
this.noteService.deleteNote(note);
}
}
}
我的服务:
addNote (note: Note){
note.id = doc(collection(this.fs, 'id')).id
return addDoc(collection(this.fs, 'Notes'), note)
}
getNotes():Observable<Note[]>{
let notesRef = collection(this.fs, 'Notes')
return collectionData(notesRef, {idField: 'id'}) as Observable<Note[]>
}
deleteNote(note: Note){
let docRef = doc(collection(this.fs,`Notes/${note.id}`));
return deleteDoc(docRef)
}
updateNote(note: Note, notes: any){
let docRef = doc(this.fs, `Notes/${note.id}`);
return updateDoc(docRef, notes)
}
我的Firebase数据库
我尝试了这个https://firebase.google.com/docs/firestore/manage-data/delete-data#collections但更多的错误发生,想知道我做错了什么.
1条答案
按热度按时间mgdq6dx11#
在下面的代码中
你定义
docRef
的方式是不正确的:collection(this.fs,
Notes/${note.id})
生成错误,因为在Notes/${note.id}
中,当collection方法期望奇数时,您将2个段传递给它。Notes/r5GucE9DETw36sJKCMgi
路径是文档路径,而不是集合路径。另外,您尝试只将
CollectionReference
传递给doc()
方法。下面的代码应该可以做到这一点: