Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度Firebase云返回不正确的数据_Javascript_Angular_Firebase_Google Cloud Firestore - Fatal编程技术网

Javascript 角度Firebase云返回不正确的数据

Javascript 角度Firebase云返回不正确的数据,javascript,angular,firebase,google-cloud-firestore,Javascript,Angular,Firebase,Google Cloud Firestore,我对Angular 8和Firebase云数据库有问题。如果我最初得到我的用户文档,它是正确的。然后我调用一些逻辑,它只改变一些值,而不是全部。然后我重新加载用户,但有些值即使没有更新也不正确。这真的很奇怪,我不知道为什么会这样。以下是我的代码片段: // if the user is set return the user, if not set get user from firebase, if withRefresh is true always refresh user

我对Angular 8和Firebase云数据库有问题。如果我最初得到我的用户文档,它是正确的。然后我调用一些逻辑,它只改变一些值,而不是全部。然后我重新加载用户,但有些值即使没有更新也不正确。这真的很奇怪,我不知道为什么会这样。以下是我的代码片段:

    // if the user is set return the user, if not set get user from firebase, if withRefresh is true always refresh user
    GetUser(withRefresh?: boolean): Observable<User> {
        if (this.user == null || withRefresh) {
            return this.authService.GetUser().pipe(map(user => {
                console.log(user);
                this.user = user;
                return this.user;
            }));
        } else {
            return of(this.user);
        }
    }
在Snychronize函数的末尾,我重新加载用户和活动。这将返回错误的值

if (i === activities.length - 1) {                                              
    this.appStore.GetUser(true).pipe(take(1)).subscribe(() => {
        this.appStore.GetUserActivities(true);
    });
}
Firebase云上的数据是正确的


请添加尽可能多的详细信息。我们也不确定为什么它是不正确的。您调用的更新值的逻辑是什么?你在哪里订阅这个observable at等等。我添加了更多的代码片段。我希望你现在有一个更好的概述。请添加尽可能多的细节。我们也不确定为什么它是不正确的。您调用的更新值的逻辑是什么?你在哪里订阅这个observable at等等。我添加了更多的代码片段。我希望你现在有一个更好的概述。
SyncActivities() {
        this.appStore.GetUser().pipe(take(1)).subscribe((user) => {
            if (this.appStore.user != null) {
                this.syncActivitiesService.Synchronize(this.appStore.user);
            }
        });
    }
if (i === activities.length - 1) {                                              
    this.appStore.GetUser(true).pipe(take(1)).subscribe(() => {
        this.appStore.GetUserActivities(true);
    });
}