VueJS firebase交互承诺

时间:2017-11-07 10:25:25

标签: firebase asynchronous vue.js promise vuefire

我是Firebase数据库的人 看起来像这样。

enter image description here

我有很多不同身份证的产品。

现在:我的API中有一个函数getbyID:

  getbyId: function(myId) {
          var obj = FireBase.database().ref('product')
          .orderByChild('id')
          .equalTo(myId)
          .once("value", function(snapshot) {
              var key;
              snapshot.forEach(function (childSnapshot) {
                  key = childSnapshot.key;
                  return true;
              });
              if (key) {
                  console.log(FireBase.database().ref('product').child(key).toString());
                  return (FireBase.database().ref('product').child(key).toString());
              } else {
                  console.log("Your ID doesn't exist");
              }
          });
      console.log(obj);
      return (obj);
  },

我希望这个函数返回与我在param中给出的好ID相对应的JSON。 在if(key)

之后使用控制台日志打印时,它正在工作
          console.log(FireBase.database().ref('product').child(key).toString());

这个console.log打印出elem的链接(而不是Json :()

然而问题是当我打印" obj"

console.log(obj)

这个console.log打印了我的承诺:((所以我不能回复我想要的元素。我无法找到原因。

我听说过异步和等待,但我不知道如何实现它。

非常感谢

0 个答案:

没有答案