【问题标题】:Can't loop through child records in firebase无法遍历firebase中的子记录
【发布时间】:2017-07-30 07:09:53
【问题描述】:

您好,我想弄清楚如何使用只有 reqdetails 的用户密钥循环访问请求表。我已经尝试按照文档进行操作,但它不起作用。 我只需要过滤掉所有只有 reqdetails 的用户密钥。例如 OAJ2WNWQPUfwJCpAJ11FWIA8kPn2 的用户密钥有一个 reqdetails。

顺便说一句,我正在关注此链接: https://firebase.google.com/docs/reference/js/firebase.database.DataSnapshot

这是我的 Firebase 控制台:

这是我的声明和构造函数

  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);
}

【问题讨论】:

    标签: firebase ionic-framework ionic2


    【解决方案1】:

    您需要指定目标请求的键或循环所有请求。

    如果你知道钥匙:

    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);
        });
    }
    

    【讨论】:

    • 非常感谢
    猜你喜欢
    • 2018-10-06
    • 2017-12-30
    • 2018-06-10
    • 1970-01-01
    • 2017-04-10
    • 2016-01-22
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    相关资源
    最近更新 更多