Определение того, что было добавлено / удалено / изменено в списке Firestore - PullRequest
0 голосов
/ 03 декабря 2018

Firestore в качестве бэкэнда.Мне удалось пройти, просто используя основные грубые методы.Однако я хотел выяснить, как определить изменения в списке элементов, которые возвращаются после первоначальной подписки.

В конечном итоге я хочу: - уменьшить количество документов, которые читаются каждый раз - анимировать список элементов (анимация входа, анимация выхода, анимация изменения)

ВВ следующем примере у меня есть базовый метод crud вместе с начальной подпиской:

posts:post [] = [];

constructor(private db: AngularFirestore){}

ngOnInit(){

//The initial subscription to the posts
this.db.collection("Posts").valuechanges().subscribe( _posts => {
this.posts = _posts;
});


async addItem(_post:post)
{
_post.id = this.db.createId();
await this.db.collection("Posts").doc(_post.id).set(_post);
}

async update(_post:post)
{
await this.db.collection("Posts").doc(_post.id).update(_post);

}

delete (_post:post)
{
await this.db.collection("Posts").doc(_post.id).delete();

}

С помощью вышеуказанных методов я подписываюсь на документы в коллекции Posts.Первоначально я получаю массив типа Post, и всякий раз, когда добавляется, обновляется, удаляется другой элемент, я получаю обновленный массив типа post.

Как мне дифференцировать то, что случилось с предметом, чтобы я мог оживить изменения (т.е. оживить запись предмета и т. Д ...)?

Это действительно помогло бы мне, если бы выможет показать пример кода?

Спасибо

1 Ответ

0 голосов
/ 03 декабря 2018

Наблюдаемый valueChanges предоставляет только фактические данные в документе.У него нет других метаданных о документе и типе изменений.

Если вам нужна дополнительная информация, вместо этого прослушайте documentChanges.Это предоставляет поток DocumentChangeAction объектов, которые среди прочего содержат свойство type, которое является DocumentChangeType.

См. https://github.com/angular/angularfire2/blob/master/docs/firestore/documents.md#the-documentchangeaction-type

...