我想使用Firebase和MongoDB的云函数。问题是我不知道如何将我的Mongo数据库与Cloud Functions连接。我的数据库是在matlab上部署的。我做了这个schema:
var mongoose = require('mongoose')
var Schema = mongoose.Schema
var patientSchema = new Schema({
name: {
type: String,
required : true,
},
disease:{
type: String,
required : true,
},
medication_provided: {
type: String,
required : true,
},
date : {
type : Date,
}
})
const patient = mongoose.model('patientInfo', patientSchema)
module.exports = patient
然后,我在项目index.js文件中要求我的模式,并导出一个名为getAllPatient的函数。
const patient = require('../Patient')
const functions = require('firebase-functions');
const mongoose = require('mongoose')
mongoose.connect('mongodb://patient:patient123@ds139869.mlab.com:39869/patient',{useMongoClient: true})
exports.getAllPatient = functions.https.onRequest((request, response) => {
patient.find({}).then((data) => {
response.send(data)
})
})
但是给了我一个错误“错误:无法处理请求”
3条答案
按热度按时间wydwbb8l1#
我最近遇到了这种类型的错误,发现firebase免费计划不允许从函数内部出站连接。如果你需要调用外部http/tcp连接,你需要在flame或blaze计划上。见下面的截图或见部分云功能->出站网络在此链接Firebase Pricing
cnwbcb6i2#
尝试以下面链接中所示的类似方式设计云函数:
https://github.com/firebase/functions-samples/blob/master/authorized-https-endpoint/functions/index.js
很久以前我就试过mongoose,它工作得很好,但它很慢,因为对于每个新请求,它都会打开mongoose连接并为您提供数据。
希望这有帮助!!
h9vpoimq3#
备选方案:
2023年6月
TLDR; -使用Data API代替连接。link
这里是如何开启数据API并获取
MONGO_DATAAPI_URL
和MONGO_DATAAPI_KEY
。说明:
MongoDB允许一个名为Data API的服务从任何支持HTTPS的平台连接到MongoDB Atlas,包括
*无服务器和边缘计算环境
更多信息:https://www.mongodb.com/docs/atlas/api/data-api-resources/https://www.mongodb.com/docs/atlas/api/