Angular Fire 函数 - app.functions 不是函数

问题描述 投票:0回答:1

我将 Angular v16 与 Angular Fire v16 和 Firebase v9 结合使用。我按照说明进行了所有设置。我做了

firebase login
firebase init
并将函数制作成打字稿。

然后我将 AngularFireFunctionsModule 导入到我的 app.module.ts 中:

imports: [
    BrowserModule,
    CommonModule,
    HttpClientModule,
    FormsModule,
    FontAwesomeModule,
    AppRoutingModule,
    AngularFireModule.initializeApp(environment.firebase),
    AngularFireFunctionsModule,   //imported here
    AngularFireAuthModule,
    AngularFirestoreModule,
    AngularFireStorageModule,
    AngularFireDatabaseModule, 
  ],

为了测试,我刚刚创建了这个简单的index.ts:

const functions = require('firebase-functions');

const admin = require('firebase-admin');
admin.initializeApp();

exports.callMe = functions.https.onCall((data, context) => {
    return data.name
});

我使用

firebase deploy
部署了它并且它有效。还检查了控制台网站,我可以在那里看到它。

我正在使用一个名为 bubbleService 的服务,它调用它:

import { Injectable, NgZone } from '@angular/core';
...
...
import { AngularFireFunctions } from '@angular/fire/compat/functions';

@Injectable({
  providedIn: 'root'
})
export class BubbleService {

  constructor(
    ...
    public functions: AngularFireFunctions
  ) { } 

  callFunction(name: string): Promise<string> {
    const callable = this.functions.httpsCallable('callMe');
    return callable({ name }).toPromise().then((result) => {
      return result.data as string;
    }).catch((error) => {
      console.error('Error calling function:', error);
      throw error;
    });
  }

....

我的组件正在调用此服务:

this.bubbleService.callFunction('John Doe').then((data) => {
      alert(data);
    }).catch((error) => {
      console.error('Failed to fetch greeting:', error);
});

但是现在当我运行这个时,我在网络控制台中收到此错误:

调用函数时出错:TypeError:app.functions 不是函数

我尝试了 Angular Fire 的多个版本,但没有成功。老实说,我不知道该怎么做或这意味着什么。

angular typescript firebase google-cloud-functions angularfire
1个回答
0
投票

导入错误,需要修改如下!

之前:

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

之后:

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

Fire 函数 github 文档

© www.soinside.com 2019 - 2024. All rights reserved.