Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
251 views
in Technique[技术] by (71.8m points)

javascript - Get nested data from Firebase in angular

I have a database structure in Firebase like this:

{
    "2021-01-07" : {
        "1HKI7hxBSVVB4vNf6tz1bqqxXx33" : {
            "info" : {        
                "status" : "present"
            },
            "shifts" : {
                 "h00" : 0
            }
        },
        "1jXahskAxtYsBwqTsxAc2u4gCEz2" : {
            "info" : {
                "status" : "present"
            },
            "shifts" : {
            "h00" : 0
            }
        }    
    },
    "2021-01-08" : {
        "1HKI7hxBSVVB4vNf6tz1bqqxXx33" : {
            "info" : {
                "status" : "present"
            },
            "shifts" : {
                "h00" : 0
            }
        },
        "1jXahskAxtYsBwqTsxAc2u4gCEz2" : {
            "info" : {
                "status" : "present"
            },
            "shifts" : {
                "h00" : 0
            }
        }
    }
}

I'm trying to get this data into the app in a service component:

getStats(): AngularFireList<ActivityModel> {
return this.db.list(`/activity/data/`, ref => ref.orderByKey().startAt('2021-01-07').endAt('2021-01-08'));
}

And the ActivityModel is:

export class ActivityModel {
    key: string;
    shifts?: ShiftsModel;
    info?: InfoModel;
}

export class ShiftsModel {
    h00: number;
}

export class InfoModel {
    status: string;
}

then in my app component, I'm trying to get this data:

retrieveStats(): void {
this.db.getStats().snapshotChanges().pipe(
  map(changes =>
    changes.map(c =>
      ({ key: c.payload.key, ...c.payload.val() })
    )
  )
).subscribe(data => {
  console.log(data)
});

}

How can I pull all the nested data into a list of ActivityModel. I'm quite new to angular.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...