2017-10-25 5 views
0

새로운 Firestore를 사용하려고합니다. Realtime Database가 잘 작동하는 시스템을 가지고 있었지만 Firestore가 출시하기 전에 Realtime에서 Firestore로 전환 할 수있게 해주는 새로운 기능이있었습니다. 나는 대부분을 마이그레이션 할 수 있었지만 청취자가 새로운 변경 사항을 듣지 않아 변경 내용이 데이터베이스에 수신되는 데 시간이 오래 걸리기 때문에 오류가 발생했습니다.청취자가 Firestore에서 업데이트되지 않음

편집을 할

예 : 나는 기사를 게시하고,이 문서가 게시하기 전에 검토 할 필요가있다, 그래서 "보류"필드 "상태"를 값으로 문서에 "articlesUser"컬렉션입니다. 관리자로서 기사를 게시하면 상태가 "보류 중"에서 "승인 됨"으로 바뀝니다. 편집을 클릭하면이 새보기의 상태가 여전히 "보류 중"입니다.

샘플 코드 : "this.afs는"AngularFirestore의 인스턴스

getAllByUser(uid, limitToLast): Observable<any> { 

const items$ = this.afs.collection(`countries/${this.countryDbName}/articlesUser/${uid}`, ref => 
ref.orderBy('createdAt').limit(limitToLast)).valueChanges(); 
... 

. 나중의 항목은 Ngrx Store를 사용하는 상태로 저장됩니다.

나는 articlesUser를 업데이트 할 때, 나는 다른 테이블을 갱신, 그래서합니다 (중포 기지 기능에서)의 "설정"방법, 배치를 사용

const batch = dbs.batch(); 
batch.set(dbs.collection(`countries/${country}/articlesUser/${uid}`).doc(article.key), listing); 
... 

나는 단지 편집을 클릭 할 수 버튼이 상태가 Accepted 일 때 버튼을 클릭하지만 편집보기로 이동하면이 시간에로드 된 "문서"에 상태가 "보류 중"입니다. 따라서보기에서 "수락 됨"상태를 가졌습니다. 왜냐하면 편집을 클릭 할 수 있었지만 새보기에는 여전히 "보류 중"상태가 있기 때문입니다.

Firestore에서 "모든 수신기에 알림을 푸시"기능 또는 다른 기능이 필요합니까?

+0

자세한 내용을 완료 할 수 있습니까? 코드를 조금 표시하십시오. 여기에서 문서를 검색하십시오. –

+1

Hi Diego. stackblitz로 달성하고자하는 것에 대한 작은 예제를 만들 수 있습니까? 다음은 공식 angularfire2 stackblitz 템플릿에 대한 링크입니다. https://stackblitz.com/edit/angular-1iment 코드를 살펴보고 도움이되는지 확인해 드리겠습니다. :) – DauleDK

답변

0

명백하게 그것은 bug일지도 모르지만, 현재 내 경우에는 정상적으로 작동합니다.

"상태"필드를 변경하고 어디에서나 업데이트 할 수있는 샘플 앱을 만들었습니다 (작동하도록 app.module에 firebase 자격 증명을 채워야 함). 여기에 stackblitz