【问题标题】:'Observable<void>' is not assignable to type 'Observable<Task[]>'Observable<void>' 不可分配给类型 'Observable<Task[]>
【发布时间】:2018-09-04 10:35:03
【问题描述】:

我有以下代码抛出错误

taskToday: Observable<Task[]>;
    this.taskToday = Observable.fromPromise(this.dbCollectionService.taskCollection.ref.where('dueDate', '==', moment().startOf("day").toDate()).get().then(doc=>{
                doc.docChanges() .map(
                    d =>  { 
                      const task =  d.doc.data() as Task;
                      const id =  d.doc.id 
                      return { id, ...task};
                    }
                );
            }))

尝试了很多,但没有得到它。

我是 Angular 和 Firestore 的新手,请帮忙

【问题讨论】:

  • 快速浏览一下您就错过了return
  • 我在哪里得到这个代码和来自网络的帮助
  • return doc.docChanges() ......
  • 谢谢,给我一巴掌……真是个愚蠢的错误
  • 你能帮帮我吗,当我采用这种方法时,它会影响收藏何时发生任何变化

标签: angular firebase google-cloud-firestore


【解决方案1】:

您应该返回更改,

return doc.docChanges() .map(
                    d =>  { 
                      const task =  d.doc.data() as Task;
                      const id =  d.doc.id 
                      return { id, ...task};
                    }
                );

【讨论】:

  • ye 我从@AJT_82 帮助中得到了它
  • 你能帮帮我吗,当我按照这种方法时,它会影响收藏何时发生任何变化
  • 有什么问题?
  • 如果任何删除集合中的任何文档,它应该会受到影响,但它不是
  • 就像我们做 .snapshotChanges() 或 valuechange 时一样
【解决方案2】:

你应该在函数内部返回这种类型。

next: getMovies(): Observable<Movie[]>{return this._http.get<Movie[]>(url_with_params); }

如果你的代码看起来像

this: getMovies(): Observable<Movie[]>{this._http.get<Movie[]>(url_with_params); }

你会得到关于类型 void is not assignable 的错误

【讨论】:

    猜你喜欢
    • 2020-04-17
    • 2020-11-12
    • 2021-09-23
    • 1970-01-01
    • 2018-08-14
    • 2021-01-02
    • 2016-09-10
    • 2020-11-23
    • 2019-01-12
    相关资源
    最近更新 更多