Angular / FireStore - 使用get方法创建对文档的可观察引用

时间:2017-10-09 15:10:46

标签: angular google-cloud-firestore

我正在使用

  • 公司的FireStore

我想要实现的目标

  • 实时更新

  • 如果数据库中的数据发生了变化,它会在页面上自动更新,而无需在视图之间导航或重新加载页面

我做了什么

  • 最初,我使用AngularFire将文档显示为一个可以观察到实时udpates的observable。但是,每当我删除文档时(通过页面上的自定义按钮),控制台中都会抛出错误以检查文档是否存在。 (可能是因为在删除文档之后,在重新路由之前它仍然在页面上并且认为我正在尝试提供不存在的文档)

  • 因此,我使用FireStore文档来实现'get'方法,这样如果我删除文档,页面将检查文档是否存在。因此,我的控制台错误已解决:enter link description here。但这确实意味着我不再获得实时更新。

我想做什么

  • 从observable切换到get方法导致我的数据无法实时更新。有没有办法用我的代码实现这个目的?
  • 或者有没有办法在使用angularfire方法时检查文档是否存在?

Component.ts

export class
....

// These two were originally used whilst using the AF observables
 private projectDoc: AngularFirestoreDocument<any>;
  project: Observable<any>;

getProjectData() {
    var db = firebase.firestore();
    var docRef = db.collection(`folders/${this.folderId}/albums`).doc(`${this.albumId}`);

    docRef.get().then((doc) => {
      if (doc.exists) {
        
        // A const for the returned data
        const data = doc.data();

        this.album_title = data.album_title;
        this.album_reference = data.album_reference;

      } else {
        console.log("No such document!");
      }
    }).catch(function (error) {
      console.log("Error getting document:", error);
    });
  }

0 个答案:

没有答案