有啥方法可以使用角度组件中的 onCall Firebase 函数?

Posted

技术标签:

【中文标题】有啥方法可以使用角度组件中的 onCall Firebase 函数?【英文标题】:There is any way to use onCall Firebase functions from an angular component?有什么方法可以使用角度组件中的 onCall Firebase 函数? 【发布时间】:2019-02-11 01:53:28 【问题描述】:

我知道可以使用 functions.https.onRequest 或 functions.https.onCall 调用 firebase 云函数,但我找不到有关如何使用 Angular 模块中的“onCall”的示例,这些示例我发现只有 http request angular 模块。

示例:

import  Component  from '@angular/core';
import  AngularFireDatabase  from 'angularfire2/database';
import * as firebase from 'firebase/app';

import  Http, Headers  from '@angular/http';
import 'rxjs/add/operator/toPromise';

@Component(
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
)

export class AppComponent 


  constructor(private db: AngularFireDatabase, private http: Http)  

  postRequest() 
    const url = 'https://your-firebase-project.cloudfunctions.net/secureEndpoint';

    firebase.auth().currentUser.getIdToken()
            .then(authToken => 
              const headers = new Headers('Authorization': 'Bearer ' + authToken );

              const myUID    =  uid: 'current-user-uid' ;    // success 200 response
              const notMyUID =  uid: 'some-other-user-uid' ; // error 403 response

              return this.http.post(url, myUID,  headers: headers ).toPromise()
            )
            .then(res => console.log(res))
    


有什么方法可以在 Angular 模块上使用 JS 标准调用?

<script src="https://www.gstatic.com/firebasejs/5.4.1/firebase-functions.js"></script>
firebase.functions().httpsCallable('FUNCTION');

【问题讨论】:

这只是 javascript,所以在 Angular 中也应该可以正常工作。从您的代码中调用它有什么问题? 对于在浏览器中运行的所有面向 JavaScript 的代码,它的工作方式应该相同。您是否在将 Web 示例适应您的代码时遇到问题? firebase.google.com/docs/functions/callable 说实话,我认为你们俩都是对的,但我有填充物,我在角度方法中遗漏了一些东西,因为是的,我正在尝试从普通的代码中调整我的旧代码JS 使用 【参考方案1】:

谢谢各位大佬的指点,你们说的对,我就是这样使用导入的:

import * as firebase from 'firebase';

然后调用函数。

【讨论】:

【参考方案2】:

这将导入组件中的所有库:

import * as firebase from 'firebase';

要仅导入函数,请使用:

import * as firebase from 'firebase/app';
import 'firebase/functions';

【讨论】:

以上是关于有啥方法可以使用角度组件中的 onCall Firebase 函数?的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以找到是不是在角度 ag-grid 中选择了行 [关闭]

Ruby 中的方法和消息有啥区别? [关闭]

装饰器和指令在角度上有啥区别?

装饰器和指令在角度上有啥区别?

Angular 2+,有啥方法可以声明一个模块中的所有组件,然后在 app.module.ts 中导入?

角度 1.5 中的组件样式?