You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Expo SDK49后无法使用Firebase第二代Functions的v2/https模块

解决方案

核心问题

你犯了一个常见错误:Expo客户端代码中意外引入了云端Functions的代码(functions/index.js)。firebase-functions是专门用于编写Firebase云端函数的依赖,只能在Node.js环境运行,不能在Expo的React Native客户端环境中使用,所以Expo Go打包时无法找到对应的模块文件。

修复步骤

  • 检查并移除客户端代码对functions目录的引用
    全局搜索Expo项目的代码,找到所有导入functions/index.js或者firebase-functions的地方,全部删除。客户端只需要使用firebase SDK(比如firebase/app、firebase/firestore等)来调用云端函数,不需要直接引入云端函数的源码。

  • 确保云端Functions的依赖正确安装(可选,若部署正常可跳过)
    虽然你部署成功了,但本地functions目录的依赖可能存在缓存问题,可重新安装:

    1. 进入functions目录:cd functions
    2. 删除依赖文件:rm -rf node_modules package-lock.json
    3. 重新安装:npm install
  • 正确调用云端函数的方式
    在Expo客户端代码中,使用Firebase客户端SDK调用已部署的onCall函数,示例:

    import { getFunctions, httpsCallable } from "firebase/functions";
    import { initializeApp } from "firebase/app";
    
    // 初始化Firebase app
    const firebaseApp = initializeApp({ /* 你的Firebase配置 */ });
    const functions = getFunctions(firebaseApp, "europe-west1"); // 指定你的函数区域
    const createPaymentIntent = httpsCallable(functions, "createPaymentIntent");
    
    // 调用函数
    const result = await createPaymentIntent({ /* 传递的数据 */ });
    

补充说明

  • 云端Functions的代码(functions目录)和Expo客户端代码是完全分离的两个环境,客户端不需要访问或导入云端函数的源码,只需要通过Firebase SDK调用已部署的函数即可。
  • 你之前能成功部署函数,说明云端环境的依赖是正常的,问题完全出在客户端代码错误引入了云端函数文件。

内容的提问来源于stack exchange,提问作者Yeloda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 15:38:16