У меня проблема с угловым решением.
Я пытаюсь добавить свойство к уже существующему в firestore документе.
У меня есть пользовательский интерфейс, который выглядит следующим образом
export interface User {
email: string;
uid: string;
photoURL?: string;
displayName?: string;
teams?: string[];
}
Я хочу создать команду и добавить этот идентификатор команды в массив teams
в существующем объекте User.
Я не хочу получать все пользовательские данные, а просто добавить новое значение в это поле.
Это возможно? Может быть, у вас есть предложения, как сделать это более эффективным?
Интерфейс команды выглядит так
export interface Team {
name: string;
description?: string;
admin?: string; // = creator - first user
members?: string[]; // array of users UIDs.
boards?: string[]; // array of board docs id.
}
Компонент, отвечающий за добавление команды, - это просто форма, поэтому onSubmit () я пытался сделать следующее, но не знаю, как добавить идентификатор документа команды в объект пользователя.
onSubmit(form: NgForm) {
const newTeam: Team = {
name: form.value.name,
description: form.value.description,
admin: this.auth.currentUserId,
members: [this.auth.currentUserId],
};
const userRef: AngularFirestoreDocument<any> = this.afs.doc(
`users/${this.auth.currentUserId}`
);
let teamRefId = '';
this.afs.collection('teams').add(newTeam).then((docRef) => teamRefId = docRef.id);
this.router.navigateByUrl('/dash');
}
Есть идеи? Возможно, это должен быть какой-то оператор распространения, но опять же я не хочу получать пользовательский объект и публиковать его обратно в firestore, а просто обновить это одно поле ...