AngularFire2类型:&#34;属性&#39;采取&#39;类型&#39; FirebaseObjectObservable <any>&#39;&#34;不存在

时间:2016-10-01 15:33:10

标签: angular typescript firebase ionic2 angularfire2

我已将我的离子应用从beta 11更新为rc0。所以这意味着我已经从打字稿1.8切换到了2.

我已根据此网站配置了AngularFire2 Getting Started with Ionic 2 RC0, Firebase 3 + AngularFire 2

我有这行代码工作:

this.af.database.object(`comments/${commentId}`).take(1).subscribe({
    data => console.log(data)
});

但现在收到此错误

  

错误TS2339:财产&#39;采取&#39;在类型上不存在   &#39; FirebaseObjectObservable&#39;

关于发生了什么的任何想法?我该如何解决这个问题?

4 个答案:

答案 0 :(得分:2)

对于最新版本的rxjs(v6)和angularfire(v5),我使用的语法是:

  @Post('files')
  @UseInterceptors(FilesInterceptor('files', null, {
    storage: diskStorage({
      destination: `${__dirname}../../../uploads/files`,
        filename: (req, file, cb) => {
          const randomName = 'a random name';
          cb(null, `${randomName}${extname(file.originalname)}`);
        },
    }),
  }))
 async upload(@UploadedFiles() files) {
    return files;
  }

  @Post('photos')
  @UseInterceptors(FilesInterceptor('files', null, {
    storage: diskStorage({
      destination: `${__dirname}../../../uploads/photos`,
        filename: (req, file, cb) => {
          const randomName = 'a random name';
          cb(null, `${randomName}${extname(file.originalname)}`);
        },
    }),
  }))
  async uploadPhotos(@UploadedFiles() photos) {
    return photos;
  }

答案 1 :(得分:1)

this.auth.authState.pipe(take(1))。subscribe(user => {

});

答案 2 :(得分:0)

从上面发布user @ codedesignr的答案,这个问题可以有一个官方解决方案:

  

使用import 'rxjs/add/operator/take';

导入rxjs take运算符

答案 3 :(得分:0)

如果您的角度版本为6或更高版本。

在下面使用:

从“ rxjs / operators”导入{提取,映射};

安装-npm install --save rxjs-compat

还具有其他功能(Take,Map)的用户管道。

timer(0,10).pipe(take(1000)).pipe(map(()=> x));