如何使用角度2

时间:2017-11-16 11:19:00

标签: angular typescript firebase firebase-realtime-database

如何比较节点Uid == ChById。

first node

second node

  1. 此代码用于第一个节点值访问。 提供羽毛球运动uid进入阵列。

    this.db.list('/Providers/'+this.mySport+'', {preserveSnapshot:     true}).subscribe(snapshots => {
    if(snapshots.values()==null) {console.log('its empty')}else {
    snapshots.forEach(snapshot => {
      snapshot.forEach(snapshot1 => {
        var myTeamName = [snapshot1.val().team_name];
        var availability = [snapshot1.val().Availability];
        var userid = [snapshot1.val().Uid];
        this.getallprovidersuserids = [userid];
        //console.log(this.getallprovidersuserids);
        this.allelementsofuser.push({teams: myTeamName, userloginid: userid, availability: availability});
      });
    });
    }
    });
    
    1. 此代码用于第二个节点访问。 challanges节点进入羽毛球运动ChById值进入阵列值。

      this.db.list('/Challenges/'+this.mySport+'', {
        preserveSnapshot: true}).subscribe(snapshots2 => {
        snapshots2.forEach(snapshot2 => {
          snapshot2.forEach(snapshot3 => {
            var getallChallenegesuserid = [snapshot3.val().ChByUid];
            console.log(getallChallenegesuserid[0]);
          });
        });
        // console.log(this.getallprovidersuserids);
       });
      
    2. 如果我将两个不同的数组存储在一起,并使用嵌套for循环比较两者。没有给出output.please帮助解决我的代码。

1 个答案:

答案 0 :(得分:0)

你需要combineLatest所以他们同时解决(他们都是异步+懒惰):

Observable.combineLatest(
    this.db.list(`/Providers/${this.mySport}`,  {preserveSnapshot: true}),
    this.db.list(`/Challenges/${this.mySport}`, {preserveSnapshot: true})
).subscribe(([providersSnapshot, challengesSnapshot]) => {
   // do your comparison in here
})