如何使用AngularFire2执行可调用函数

时间:2018-07-21 12:47:54

标签: angular firebase angularfire

firebase中的可调用函数可以按以下方式执行:

firebase.functions().httpsCallable('addMessage');

我想知道AngularFire2中的等效功能是什么。我已经扫描了文档,对此一无所获。

如果没有等效项,那么如何在AngularFire2中获取基础Firebase对象的句柄?

1 个答案:

答案 0 :(得分:0)

请确保将angularfire2版本更新为RC9或更高版本-合并PR时就是这样。

npm install angularfire2@latest

AngularFireFunctions添加到providers中的app.module中。

import { AngularFireFunctions } from 'angularfire2/functions';

@NgModule({
  providers: [
    AngularFireFunctions
  ],
});

在组件中,您可以从httpsCallable运行AngularFireFunctions函数。

constructor(
  private afFun: AngularFireFunctions,
) { }

ngOnInit() {
  // Angular Fire - Converts Promise to Observable
  this.afFun.httpsCallable('myFunction')({ text: 'Some Request Data' })
    .pipe(first())
    .subscribe(resp => {
      console.log({ resp });
    }, err => {
      console.error({ err });
    });

  // Convert back to Promise
  const respRef = await this.afFun.httpsCallable('myFunction')({ text: 'Some Request Data' })
    .toPromise();

  console.log({ respRef });
}

AngularFire2存储库中的一个comment询问了为什么将响应转换为ObservableFirebase documentation具有返回Promise的功能-请注意不一致之处-将来可能会发生变化。