问题可能是由于firebase版本更新而导致的,导致arrayUnion无法使用。解决此问题的方法之一是使用set({merge: true})代替arrayUnion。这里是一个示例代码,以展示如何使用set({merge: true})来将新元素添加到数组中。
在此示例中,我们有一个名为"items"的集合,并且在文档中有一个名为"list"的数组。我们要向数组中添加一个新元素。
import { AngularFirestore } from '@angular/fire/firestore';
@Component({
selector: 'app-example',
templateUrl: './example.component.html',
styleUrls: ['./example.component.scss']
})
export class ExampleComponent {
constructor(private firestore: AngularFirestore) { }
addNewItemToList(item: string) {
const docId = 'documentId123';
const listRef = this.firestore.collection('items').doc(docId);
listRef.set({ list: { [item]: true } }, { merge: true });
}
}
在这个示例中,我们首先获取对文档的引用,然后使用set({merge:true})来将新元素添加到数组中。注意,我们使用[item]: true来创建一个名为“item”的属性(键)并将其设置为true。这是为了确保新元素的唯一性。
如果您有多个新元素要添加,只需在list对象中添加更多属性即可。
使用此方法,您可以将新元素添加到数组中,并继续为任何其他目的使用Angular Firebase库。