firebase中的可调用函数可以按以下方式执行:
firebase.functions().httpsCallable('addMessage');
我想知道AngularFire2中的等效功能是什么。我已经扫描了文档,对此一无所获。
如果没有等效项,那么如何在AngularFire2中获取基础Firebase对象的句柄?
答案 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询问了为什么将响应转换为Observable
。 Firebase documentation具有返回Promise
的功能-请注意不一致之处-将来可能会发生变化。