使用Angular 2.0和Firestore,我创建了一个Cloud Function,我想在我的代码中调用它。
在使用TypeScript时,我想提供引用此Cloud Function的变量的类型(即类型HttpsCallable
)。
WebStorm在提供类型时建议以下导入:
import HttpsCallable = firebase.functions.HttpsCallable;
但是,运行代码时会出现以下错误
ERROR Error: Uncaught (in promise): TypeError: firebase_app__WEBPACK_IMPORTED_MODULE_3__.functions is not a function
TypeError: firebase_app__WEBPACK_IMPORTED_MODULE_3__.functions is not a function
代码如下:
import {Injectable} from '@angular/core';
import {AngularFirestore, CollectionReference} from '@angular/fire/firestore';
import * as firebase from 'firebase/app';
import 'firebase/firestore';
import {collectionData} from 'rxfire/firestore';
import {tap} from 'rxjs/operators';
import HttpsCallable = firebase.functions.HttpsCallable;
@Injectable({
providedIn: 'root',
})
export class FirestoreService {
private app: firebase.app.App;
// My Cloud Function
registerUserFunction: HttpsCallable;
constructor(private db: AngularFirestore) {
// Cloud Function
this.registerUserFunction = firebase.functions().httpsCallable('dbUsersRegister');
}
我的问题是:在TypeScript中导入Firestore类型HttpsCallable
的正确方法是什么?
答案 0 :(得分:0)
我没有使用angular,但是在webpack项目中使用TypeScript,导入功能的工作就像导入Firestore:
import * as firebase from 'firebase/app'
import 'firebase/functions'
const callable: firebase.functions.HttpsCallable =
firebase.functions().httpsCallable(...)