我想在前端调用我的HTTP可调用函数,但无法正确导入防火墙。我试着读了[消]火基文件,但仍然很困惑。
我的问题:
前端代码:
import "../App.css";
import React, { useState } from "react";
import { getFunctions, httpsCallable } from
"firebase/functions";
const functions = require("firebase/functions");
export default function Navbar() {
const getViewCount =
firebase.functions().httpsCallable("getViewCount");
getViewCount().then((result) => {
console.log(result.data);
});
下面是来自后端的Firebase函数代码:
exports.getViewCount = functions
.runWith({ secrets: ["YOUTUBE_API"] })
.https.onCall(async (data, context) => {
const youtube = google.youtube({
version: "v3",
auth: process.env.YOUTUBE_API,});
const { count } = await youtube.channels.list({
id: process.env.YOUTUBE_CHANNEL_ID,
part: "statistics",});
const viewCount = count.items[0].statistics.viewCount;
return {
count: viewCount,};
});
发布于 2022-11-07 11:13:20
正如@Konrad所提到的,它应该是firebase/function
。
根据你所附的错误消息,上面写着Module not found: Error: Can't resolve 'firebase-function'
。因为你输入了错误的语法。
您需要添加要使用的Firebase产品(即Firebase客户端SDK的云函数),如下所示:
// Firebase App (the core Firebase SDK) is always required and must be listed first
import * as firebase from "firebase/app";
// Add the Firebase products that you want to use
import "firebase/functions";
发布于 2022-11-07 13:15:36
我会检查您的tsconfig文件,看看您的目标是什么。如果您使用创建反应应用程序,它默认为es5,您将得到模块未找到的错误。
https://stackoverflow.com/questions/74351315
复制