AngularFire数据库对象存在返回undefined

时间:2017-02-24 22:07:55

标签: angular typescript angularfire

我正在检查Firebase中是否存在对象。我正在使用打字稿和#34; angularfire2":" ^ 2.0.0-beta.8"包。在检查对象是否存在时,我使用下面的方法,但我返回undefined

let isExists = this.myservice.isExists(order.$key);
console.log(isExists)

返回undefined

  isExists(orderKey:string) {
    let urlOrRef = `/orders/${orderKey}`;
    const orderRef = this.af.database.object(urlOrRef, { preserveSnapshot: true });
    orderRef.subscribe(data => {
      if(data.val()==null) {
        return false;
      } else {
        return true;
      }
    });
  }

所以我稍微调整一下方法,将变量显式设置为布尔值并返回该变量。

  isExists(orderKey:string) {
      let exists = false;
    let urlOrRef = `/orders/${orderKey}`;
    const orderRef = this.af.database.object(urlOrRef, { preserveSnapshot: true });
    orderRef.subscribe(data => {
      if(data.val()==null) {
        exists = false;
      } else {
        exists = true;
      }
    });
        return exists;
  } 

返回我期待的truefalse

我需要理解为什么第一个方法会返回undefined。感谢您的帮助!

0 个答案:

没有答案