【问题标题】:TypeError: undefined is not an object (evaluating 'ref.onSnapshot')TypeError:未定义不是对象(评估'ref.onSnapshot')
【发布时间】:2022-01-01 09:38:24
【问题描述】:

Angular 和 Firebase Firestore 抛出 TypeError: undefined is not an object (evalating 'ref.onSnapshot')

this.fbstore
      .collection(`claims`, ref => {
        let query:
          | firebase.default.firestore.CollectionReference
          | firebase.default.firestore.Query = ref;

          if(someValue === true) {
            return query.where('field1', '==', 20);
          }

          
      }).valueChanges();

【问题讨论】:

    标签: javascript angular firebase google-cloud-firestore


    【解决方案1】:

    问题是如果someValue为假则不返回查询,添加else语句将解决问题或添加默认return query。如果你对 IDE、Typescript 依赖太多,这些类型的错误是很耗时的,在这个示例代码上很容易看出问题。

    this.fbstore
          .collection(`claims`, ref => {
            let query:
              | firebase.default.firestore.CollectionReference
              | firebase.default.firestore.Query = ref;
    
              if(someValue === true) {
                return query.where('field1', '==', 20);
              }
           
             return query; // this will not run if someValue is true
    
          }).valueChanges();
    

    【讨论】:

      猜你喜欢
      • 2021-12-17
      • 2021-12-01
      • 2019-11-16
      • 2020-02-09
      • 2019-12-07
      • 2019-01-20
      • 2014-06-13
      • 2021-07-24
      • 2016-09-02
      相关资源
      最近更新 更多