Как хранить несколько списков задач в FireBase, используя Angular? - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть приложение со списком задач, которое запускается с главной страницы и предлагает пользователю создавать новые задачи.Проблема в том, что каждое новое задание хранится в базе данных с уникальным идентификатором.Мне нужно, чтобы все созданные задачи были в одной коллекции с одним уникальным идентификатором, чтобы пользователь мог записать его в URL и увидеть созданный список задач.Но я не знаю, как это реализовать. Нужно ли вносить какие-то изменения в облачную базу данных Firestore или в код?

Я пока не нашел решения

этот код из todo.component.ts

export class TodoComponent implements OnInit {

constructor( public service: TodoService, public firestore: 
AngularFirestore) { }

ngOnInit() {
this.resetForm();
}
resetForm(form?: NgForm) {
if (form != null) {
  form.resetForm();
}
this.service.formData = {
  id: null,
  todoName: '',
};
}
onSubmit(form: NgForm) {
let data = Object.assign({}, form.value);
delete data.id;
this.firestore.collection('todos').add(data);
this.resetForm(form);
}
}

эта часть из todo.model.ts

   export class Todo {
   id: string;
   todoName: string;
   }

и todo.service.ts

 export class TodoService {
 formData: Todo
 constructor(private firestore: AngularFirestore) { }

getTodos() {
return this.firestore.collection('todos').snapshotChanges();
}
}

1 Ответ

0 голосов
/ 26 сентября 2019

Чтобы использовать пользовательский идентификатор, вам нужно использовать .set, а не .add

. При этом создается документ с идентификатором "LA": ​​

db.collection("cities").doc("LA").set({
name: "Los Angeles",
state: "CA",
country: "USA"
})

для более https://firebase.google.com/docs/firestore/manage-data/add-data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...