【问题标题】:how to get the push id value in firebase web如何在firebase web中获取push id值
【发布时间】:2018-01-27 12:21:53
【问题描述】:

我想在 AllocEmp 中获取推送 id 的值(111122223333)。 firebase 数据库:

{
  "AllocEmp" : {
    "-L3c47chqb35p0Ndo_XB" : "111122223333"
  },
  "complaintDate" : "Wed Jan 10 18:40:34 GMT+05:30 2018",
  "complaintDesc" : "ggshwhwuuww\ngshhsjsn",
  "complaintLM" : "annA",
  "complaintLoc" : "ist",
  "complaintName" : "Continous Fluctuations",
  "defaultTime" : "Thu Jan 11 00:40:34 GMT+05:30 2018",
  "department" : "Electricity",
  "resolvingTime" : "6",
  "uid" : "123456788765"
}

我正在使用代码:

    var fb = 
    firebase.database().ref().child('UserComplaints').child('AllocEmp');
    fb.once('value', snap => {
        alert(snap.val);
    });

此代码返回空值。 请帮帮我

【问题讨论】:

    标签: javascript firebase web firebase-realtime-database


    【解决方案1】:

    你没有调用 val() 方法,你缺少括号

    你应该做的是

    var fb = firebase.database().ref().child('UserComplaints/AllocEmp/1515589858255');
    fb.once('value', snap => {
        alert(snap.val()); //here is the problem
    });
    

    【讨论】:

    • 仍然有问题。现在它的警报“[object Object]”
    • var fb = firebase.database().ref().child('UserComplaints/AllocEmp/1515589858255'); fb.once('value', snap => { alert(snap.key); //这里子名正确返回(AllocEmp) });
    【解决方案2】:

    我遇到了类似的问题。这里发生的是回调稍后运行,因此控制台只告诉它是一个对象。所以你可以使用 wait () 并设置 Timeout 。但显然这是一种错误的做法。在代码中启用函数调用以使其同步。 希望对您有所帮助。

    【讨论】:

      【解决方案3】:

      在您的代码中,您使用的是snap.val。因为 val 是一个函数而不是一个表达式。使用snap.val()。还要记住它会返回一个对象,因此请尝试控制它不发出警报,或者您可以将对象字符串化为警报。像这样:-

      let values = []
      var fb = 
      firebase.database().ref().child('UserComplaints').child('AllocEmp');
      fb.once('value', snap => {
          console.log(snap.val()); // to console object
          Object.keys(snap.val()).map(k => {
              console.log(snap.val()[k])
              values.push(snap.val()[k])
          })
          alert(JSON.stringify(snap.val())) // to alert object
      });
      console.log(values)
      

      【讨论】:

      • var fb = firebase.database().ref().child('UserComplaints'); fb.on('value', function(snap){ snap.forEach(function(data){ alert(JSON.stringify(data.child('AllocEmp').val())); }); });此代码返回 {key:value}。我怎样才能只从中拆分值@Himanshu
      • 我已经编辑了我的代码并使用Object.keys() 获取对象的键并通过对象映射以获取其中的值
      猜你喜欢
      • 1970-01-01
      • 2013-05-14
      • 2017-06-11
      • 1970-01-01
      • 2022-12-20
      • 2018-06-14
      • 2016-12-20
      • 2016-11-30
      • 1970-01-01
      相关资源
      最近更新 更多