如何直接从角度项目调用Firebase云功能

时间:2018-05-15 12:14:24

标签: angular firebase google-cloud-functions

我是firebase的新手,正试图了解如何直接从我的角度应用程序调用firebase云功能。我以前使用angularfire2来做Firebase的东西,但似乎angularfire2不支持云函数,所以现在我迷路了,不知道怎么做。

我查看了文档,但我无法理解,我应该从我的 service.ts 文件中调用云函数。 Firebase Doc中的示例如下所示。 我想知道如何在我的一个有角度的 service.ts 文件中获取"函数" 引用?

functions.httpsCallable("addMessage").call(["text": inputField.text]) { (result, error) in
  if let error = error as NSError? {
    if error.domain == FunctionsErrorDomain {
      let code = FunctionsErrorCode(rawValue: error.code)
      let message = error.localizedDescription
      let details = error.userInfo[FunctionsErrorDetailsKey]
    }
    // ...
  }
  if let text = (result?.data as? [String: Any])?["text"] as? String {
    self.resultField.text = text
  }
}

我是否需要在app.module.ts文件中导入某些内容或我应该做什么?

非常感谢任何帮助!谢谢!

2 个答案:

答案 0 :(得分:3)

Maintainer在这里,Angularfire前几天在RC 9中发布了AngularFireFunctions模块。 See the AngularFire changelog entry here.

请注意,从RC 8开始,您需要升级到至少Firebase 5.0.2和rxjs 6. rxjs-compat将帮助您仍然依赖于rxjs 5.

答案 1 :(得分:0)

我也遇到了这个问题,James 的回答并没有真正回答我的问题,我在哪里可以找到一个很好的例子,说明它在 Angular 中的外观。但是,在 Firebase 存储库 a README with small, but enough documentation can be found 中。

这几乎是你可以做到的紧凑:

import { AngularFireFunctions } from '@angular/fire/functions';

constructor(
    private fns: AngularFireFunctions
  ) {}

  addMessage(): Observable<any> {
    const addMessage = this.fns.httpsCallable('addMessage'); 
    return addMessage({text: "test"});
  }