gpt4 book ai didi

firebase - 在 Firebase 客户端应用程序中实现可调用的云函数

转载 作者:行者123 更新时间:2023-12-02 19:21:40 24 4
gpt4 key购买 nike

我最近发现了Firebase callable functions这允许我从客户端调用类似 HTTPS 触发器的函数(并且具有 auth() 支持)。

我很难在现有的 Firebase Web 客户端应用程序中实现这项新功能。

我正在运行一些云函数,其中有一些我想转换为 HTTPS 可调用函数的 HTTPS 函数(使用 functions.https.onCall )。

文档表明:

Set up your client development environment
<script src="https://www.gstatic.com/firebasejs/4.12.0/firebase.js"></script>
<script src="https://www.gstatic.com/firebasejs/4.12.0/firebase-functions.js"></script>

我的代码是:

import firebase from 'firebase';
import 'firebase/firestore';

const firebaseApp = firebase.initializeApp({
apiKey: '....',
authDomain: '....',
databaseURL: '....',
projectId: '....',
storageBucket: '....',
messagingSenderId: '....',
});

const db = firebaseApp.firestore();
const auth = firebaseApp.auth();
const functions = firebaseApp.functions();

export { db, auth, functions };

当我运行我的应用程序时,出现以下错误:

Uncaught TypeError: firebaseApp.functions is not a function

我尝试过yarn add firebase-functions,然后导入'firebase-functions,但应用程序需要firebase-admin。我担心这对于客户端应用程序来说太多了,所以我可能会走错方向。

有人可以帮我解决这个问题吗?(!) 此问题与 Cloud Functions (Node JS) 的服务器端 Firebase SDK 无关。它是关于直接从 Firebase Web 应用程序调用云函数。谢谢!

更新:感谢@Andrew 的帖子,这解决了我的问题:

我的配置

import firebase from 'firebase';
import 'firebase/firestore';
import '@firebase/functions';
import firestoreConfig from '@/config/firestore';

const firebaseApp = firebase.initializeApp(firestoreConfig /* The JSON configuration from my Firebase project */);

const db = firebaseApp.firestore();
const auth = firebaseApp.auth();
const functions = firebaseApp.functions();

export { db, auth, functions };

使用配置:

import { db, functions } from '@/database/firestoreInit';

export default {
addMessage(text) {
const addMessage = functions.httpsCallable('addMessage');
return addMessage({ text }).then(result => result);
},
}

最佳答案

我自己也遇到了同样的问题,并通过安装和导入 @firebase/functions npm 包解决了这个问题。我在github上找到了解决方案: https://github.com/firebase/firebase-js-sdk/blob/master/packages/functions/README.md

来自 github 上的自述文件:

ES 模块

import firebase from '@firebase/app';
import '@firebase/functions'
// Do stuff w/ `firebase` and `firebase.functions`

CommonJS 模块

const firebase = require('@firebase/app').default;
require('@firebase/functions');

// Do stuff with `firebase` and `firebase.functions`

希望有帮助!实际文档对于必须执行此操作才能调用函数不是很清楚。

关于firebase - 在 Firebase 客户端应用程序中实现可调用的云函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49487770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com