无法循环访问firebase中的子记录

无法循环访问firebase中的子记录

问题描述:

嗨,我想弄清楚如何通过只有reqdetails的用户密钥来遍历请求表。我试着按照文档,但它不工作。 我只需要过滤掉只有reqdetails的所有用户密钥。例如OAJ2WNWQPUfwJCpAJ11FWIA8kPn2的用户密钥有一个需求。无法循环访问firebase中的子记录

顺便说一下我下面这个链接: https://firebase.google.com/docs/reference/js/firebase.database.DataSnapshot

这里是我的火力控制台:

enter image description here

这里是我的声明,并构造

request: FirebaseListObservable<any>; 
    userkey: FirebaseListObservable<any>; 
    reqdetails: FirebaseListObservable<any>; 
    userreq: FirebaseListObservable<any>; 

    constructor(public navCtrl: NavController, public navParams: NavParams, angFire: AngularFireDatabase) { 
    this.request = angFire.list('/request'); 
    this.userreq = angFire.list(`${this.userkey}`); 
    this.reqdetails = angFire.list('reqdetails'); 
    } 

这里是我的OpenMapPage方法

openMapPage() 
    { 
    let process = this.request.subscribe(records => { 
// your logic 
records.forEach(record => { 

    var ref = firebase.database().ref("request"); 
    ref.once("value") 
    .then(function(snapshot) { 
    var a = snapshot.exists(); // true 
    var c = snapshot.hasChild("reqdetails"); // true 

    var d = snapshot.child('reqdetails').exists(); 

    if (snapshot.hasChild('reqdetails')) 
    { 
     console.log(record.$key); 
    } 
}); 
}); 
    }); 
     this.navCtrl.push(MapPage); 
} 

您需要在所有请求中指定目标请求或循环的密钥。

如果您知道密钥:

ref.child(REQUEST_KEY).once("value", function(snapshot) { 
    var requestKey = snapshot.key; 
    var requestValue = snapshot.val(); 

    var reqdetails = requestValue.reqdetails; 

    console.log(reqdetails); 
} 

如果你希望所有的请求:

ref.once("value", function(snapshot) { 
    var requestsKey = snapshot.key; 
    var requestsValue = snapshot.val(); 

    snapshot.forEach(function(childSnapshot) { 
     var requestKey = childSnapshot.key; 
     var requestValue = childSnapshot.val(); 

     var reqdetails = requestValue.reqdetails; 

     console.log(reqdetails); 
    }); 
} 
+0

非常感谢你 – Suresh