如何使用 nodejs 和 reactjs 设置 firebase 模拟器?
Posted
技术标签:
【中文标题】如何使用 nodejs 和 reactjs 设置 firebase 模拟器?【英文标题】:How to set up firebase emulators using nodejs and reactjs? 【发布时间】:2020-11-26 02:46:18 【问题描述】:我正在尝试为函数和 firestore 设置 firebase 模拟器。我的文件结构是这样设置的:
functions
---APIs
---util
---.gitignore
---index.js
---package-lock.json
---package.json
views
---public
---src
---.gitignore
---capacitor.config.json
---ionic.config.json
---package-lock.json
---package.json
---tsconfig.json
.firebaserc
.gitignore
firebase.json
firestore.indexes.json
firestore.rules
ionic.config.json
package-lock.json
package.json
视图是我的反应前端代码所在的位置。
我设置了模拟器,当我运行firebase emulators:start
时,它运行模拟器。但在那之后,我不知道如何将它们与 nodejs 和前端连接起来。
这是路径函数/index.js 的 index.js 代码:
const functions = require("firebase-functions");
var bodyParser = require("body-parser");
const app = require("express")();
const auth = require("./util/auth");
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded( extended: false ));
// parse application/json
app.use(bodyParser.json());
/**** route calls were here ****/
exports.api = functions.https.onRequest(app);
在functions/util/admin.js中,我有这样的代码:
const admin = require("firebase-admin");
admin.initializeApp();
const db = admin.firestore();
db.settings(
host: "localhost:8080",
ssl: false
);
module.exports = admin, db ;
这是我的一些函数/APIs/users.js 登录等代码:
const admin, db = require("../util/admin");
const config = require("../util/config");
const capitalize_Words = require("../util/helpers");
const firebase = require("firebase");
firebase.initializeApp(config);
const validateLoginData, validateSignUpData = require("../util/validators");
// Login
exports.loginUser = (request, response) =>
/**** rest of code here ****/
如果有人对如何连接模拟器有任何建议,请告诉我。另外,如果有人有更好的建议或需要更多信息,请告诉我。
感谢您的帮助!
【问题讨论】:
【参考方案1】:没有足够的虚构互联网点来发表评论,所以我把我的想法放在这里。顺便说一句,我没有 Ionic 的背景,所以我可能会遗漏一些东西。
模拟器套件,当激活时,应该在localhost
地址可用(例如localhost:5001
,我认为这是默认的)。从那里你应该能够像localhost:5001/example_function
那样路由到你的函数。
这应该只用于本地开发。实时部署应用程序时,应将其部署为firebase deploy
,并且 url 将根据您的 firebase 项目而更改。在这两种情况下,CLI 都应该编写确切的函数 url
让我知道这是否回答了你的问题,或者我是否离题了!
https://firebase.google.com/docs/emulator-suite/install_and_configure
【讨论】:
如何将前端连接到该本地主机地址?我的问题是我不知道如何更改我的代码以路由到 localhost:5001 而不是生产 url 这有帮助吗? firebase.google.com/docs/emulator-suite/connect_functions TLDRfirebase.functions().useFunctionsEmulator("http://localhost:5001")
以上是关于如何使用 nodejs 和 reactjs 设置 firebase 模拟器?的主要内容,如果未能解决你的问题,请参考以下文章
前端 (ReactJS) 到后端 (NodeJS) 身份验证
如何使用 ReactJS/NodeJS 一起部署到 Amazon Web Services (AWS)?
如何使用 MongoDB + NodeJS Express 向 ReactJS React Router 和 Redux 添加登录身份验证和会话?