【问题标题】: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 使用

标签: javascript angular firebase google-cloud-functions


【解决方案1】:

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

import * as firebase from 'firebase';

然后调用函数。

【讨论】:

    【解决方案2】:

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

    import * as firebase from 'firebase';
    

    要仅导入函数,请使用:

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

    【讨论】:

      猜你喜欢
      • 2018-07-08
      • 1970-01-01
      • 2021-11-12
      • 2021-04-10
      • 2018-11-02
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      • 2022-09-26
      相关资源
      最近更新 更多