【发布时间】:2019-04-12 01:46:51
【问题描述】:
我正在尝试更新 Firebase 数据,但遇到了错误“‘订阅’类型上不存在属性‘更新’。我可以控制台记录该对象,它确实是我想要的对象。我只是不确定如何使用可观察对象上的“订阅”方法更新对象。
import { Injectable } from '@angular/core';
import { Post } from './models/post.model';
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
@Injectable()
export class PostService {
posts: FirebaseListObservable<any[]>;
constructor(private database: AngularFireDatabase) {
this.posts = database.list('posts');
}
getPosts(){
return this.posts;
}
getPostById(postId: string){
return this.database.object('posts/' + postId)
}
updatePost(localPost){
var postInFirebase = this.getPostById(localPost.$key).subscribe(dataLastEmittedFromObserver => {
postInFirebase = dataLastEmittedFromObserver
console.log(postInFirebase)
postInFirebase.update({content: localPost.content});
});
};
deletePost(localPostToDelete){
let postInFireBase = this.getPostById(localPostToDelete.$key);
postInFireBase.remove();
}
addPost(newPost: Post){
this.posts.push(newPost)
}
}
【问题讨论】:
-
Subscription 类没有这个“更新”方法,如下所示:reactivex.io/rxjs/class/es6/Subscription.js~Subscription.html
标签: angular typescript firebase