凭诺听取Firestore快照中的更改

时间:2019-11-25 00:25:53

标签: javascript angular google-cloud-firestore

我正在尝试理解和修复角度聊天应用程序的代码,该应用程序应显示用户在特定聊天中是否有未读消息。

每当聊天室收到一条新消息时,都会有一个未读计数器,该计数器显示仍有多少条未读消息。但是,我在了解onSnapshot()subscribe()的实际工作方式时遇到了麻烦,因为我在其他方法中使用它们没有问题。

这是我的代码,用于加载用户的会话,上面带有unread计数器:

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> | Promise<any> | any
{
    return new Promise((resolve, reject) => {
        this.afs
        Promise.all([
            this.getUser2(),
        ]).
        then(
            ([chats2 ]) => {
                this.chats = chats2;
                resolve();
            },
            reject
        )
    });
}

这是我的getUsers2函数,位于同一文件中。

getUser2(): Promise<any>
    {
        return new Promise((resolve, reject) => {
            this.afs.collection('company')
                    .doc('id')
                    .collection('users', ref => ref.where('id', '==', '5725a6802d10e277a0f35724'))
                    .snapshotChanges()
                    .subscribe((response: any) => {
                        return response.map(a => {
                            const data: Object = a.payload.doc.data();
                            const id = a.payload.doc.id;
                            console.log(data)
                            resolve(data);
                        })


                }, reject);
        });
    }

我不确定在更改数据库中的unread计数器值时为什么不实时更新我的​​网站。我认为它与第一个Promise方法有关,因为我没有在其他用于更新实时数据的功能中使用它。

0 个答案:

没有答案