【问题标题】:Upgrading to AngularFire 5.0升级到 AngularFire 5.0
【发布时间】:2018-05-19 20:11:37
【问题描述】:

我正在使用带有 firebase 的 ionic 3。

到目前为止,我使用 angularfire 4.0,以下代码为我提供了一个可观察到的来自 firebase 的数据:

  obsToData: FirebaseObjectObservable<any>;

  constructor(public nav: NavController, public shared: SharedProvider, 
              public DB: AngularFireDatabase) {

              this.obsToData = DB.object('/myData');
  }

现在,根据this页面FirebaseObjectObservable删除,我需要改用AngularFireObject,如何获取数据?

我做了以下更改:

obsToData: AngularFireObject<any>;

  constructor(public nav: NavController, public shared: SharedProvider,
              public DB: AngularFireDatabase) {

              this.obsToData = DB.object('/myData');
  }

但我找不到如何从这个新对象获取可观察对象到我的 firebase 数据的方法。

有人成功使用了angularfire 5.0吗?

【问题讨论】:

    标签: firebase ionic-framework ionic3 angularfire2


    【解决方案1】:

    您需要使用valueChanges() 从 AngularFireDatabase 对象引用中获取 Observable。

    obsRef: AngularFireObject<any>;
    obsToData: Observable<any>;
    
      constructor(public nav: NavController, public shared: SharedProvider,
                  public DB: AngularFireDatabase) {
    
                  this.obsRef = DB.object('/myData');//reference
                  this.obsToData = this.obsRef.valueChanges();//Observable
      }
    

    EDIT 获取数据并保存,像任何 observable 一样订阅

      this.obsToData.subscribe(data=>{
           console.log(data);
      },error=>{
           console.log(error);
      })
    

    【讨论】:

    • 问题是 angularfire 4 中的 FirebaseObjectObservable 是从 angularfire2/database 导入的,但在 angularfire 5 中似乎没有定义,所以现在没有编译。你知道现在应该从哪里导入吗?
    • 将类型改为Observable&lt;any&gt;
    • 现在编译成功了,但是我没有在obsToData中得到我的数据。它应该在这个变量中吗?
    • 您需要订阅它.. 取决于您访问的方式。控制台登录订阅。
    • 我找到了订阅方式。非常感谢
    猜你喜欢
    • 2012-05-05
    • 1970-01-01
    • 2021-07-09
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多