如何将MongoDB与云功能一起用于Firebase?

时间:2017-08-09 08:47:49

标签: mongodb firebase mongoose google-cloud-functions

我想使用Cloud Functions for Firebase和MongoDB。问题是我不知道如何将我的Mongo数据库与云功能连接起来。我的数据库部署在matlab上。 我做了这个架构:

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)
    })
})

但是给我一个错误“错误:无法处理请求”

2 个答案:

答案 0 :(得分:2)

尝试以下面链接中显示的类似方式设计云功能: -

https://github.com/firebase/functions-samples/blob/master/authorized-https-endpoint/functions/index.js

我已经尝试了mongoose很长一段时间,它工作正常,但速度很慢,因为每次新的请求都会打开mongoose连接并为你提供数据。 / p>

希望这会有所帮助!!

答案 1 :(得分:2)

我最近遇到这种类型的错误,发现Firebase Free Plan不允许从函数内部进行出站连接。如果您需要调用外部http / tcp连接,则需要处于火焰或火焰计划中。请参阅下面的截图或查看云功能->此链接Firebase Pricing上的出站网络

enter image description here