Bik*_*mat 3 firebase google-cloud-functions
我最近发现了Firebase可调用函数,它允许我从客户端调用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>
Run Code Online (Sandbox Code Playgroud)
我的代码是:
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 };
Run Code Online (Sandbox Code Playgroud)
当我运行我的应用程序时,我收到以下错误:
Uncaught TypeError: firebaseApp.functions is not a function
Run Code Online (Sandbox Code Playgroud)
我曾尝试yarn add firebase-functions,然后import 'firebase-functions但随后的应用需要firebase-admin.我担心这对客户端应用来说太过分了,所以我可能会走错方向.
有人可以帮我解决这个问题吗?(!)这个问题是不是有关云功能(节点JS)服务器端的火力地堡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 };
Run Code Online (Sandbox Code Playgroud)
使用配置:
import { db, functions } from '@/database/firestoreInit';
export default {
addMessage(text) {
const addMessage = functions.httpsCallable('addMessage');
return addMessage({ text }).then(result => result);
},
}
Run Code Online (Sandbox Code Playgroud)
小智 7
我自己遇到了同样的问题并通过安装和导入@firebase/functions npm包解决了这个问题.我在github上找到了解决方案:https: //github.com/firebase/firebase-js-sdk/blob/master/packages/functions/README.md
从github上的README:
ES模块
import firebase from '@firebase/app';
import '@firebase/functions'
// Do stuff w/ `firebase` and `firebase.functions`
Run Code Online (Sandbox Code Playgroud)
CommonJS模块
const firebase = require('@firebase/app').default;
require('@firebase/functions');
// Do stuff with `firebase` and `firebase.functions`
Run Code Online (Sandbox Code Playgroud)
希望有所帮助!实际的文档不是很清楚为了调用函数必须这样做.
| 归档时间: |
|
| 查看次数: |
2059 次 |
| 最近记录: |