Используя Angular 2.0 вместе с Firestore, я создал облачную функцию, которую я хочу вызвать в своем коде.
Поскольку я использую TypeScript, я хочу указать тип переменной, ссылающейся на эту облачную функцию (то есть тип 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');
}
Мой вопрос: как правильно импортировать тип Firestore HttpsCallable
в TypeScript?