• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

firebase cloud function 외부 디비 연결 문의

21.05.28 15:42 작성 조회수 445

0

강의는 모두 수강했습니다. 

강의가 길지 않고 지루하지않아서 쉽게 수강했습니다. 

문의사항이 있습니다. 

강의에는 구글 클라이우드 자체 DB에 연결해서 CRUD작업을 하는데요

aws rds mysql 로 연결해서 CRUD 작업을 할려면 firebase cloud function 을 이용해야 한다고 하는데요

어떻게 하면 되는지 참조할만한 문서나 사이트가 있을까요 ?

감사합니다.

답변 1

답변을 작성해보세요.

0

안녕하세요 ^^

대부분 Firebase 가 이미 DB를 제공하는 기반이라 CRUD를 Firestore/Firebase를 사용하지 않고 mySQL를 사용하는 아키텍처는 흔하지 않을것 같아요.

샘플 소스를 하나 예제로 이 부분 참고 해주시면 될것 같습니다.

var mysql = require('mysql');
var pool = mysql.createPool({
host: 'xxxxxxxxxx.rds.amazonaws.com',
user: 'username',
password: 'password',
port: 3306,
database: "database",
debug: false
});

이렇게 선언을 해주시구요.

데이타 쿼리는 아래와 같은 문법을 사용해서 사용을 하시면 되구여


function fncMySQLQuery() {
pool.getConnection(function (err, connection) {
if (err) {
console.error('Database connection failed: ' + err.stack);
return;
}
else {
connection.query('SELECT * FROM DUAL', function (error, results, field) {
if (error !== null) {
return console.log(error);
}
else {

results.forEach(item => {
console.log(item);

});
}
connection.release();
});
}
});
}

update 는 아래와 같이 하시면 되구여

var _updateStatement =
"update usertable SET column = "+_column;

pool.getConnection(function (err, connection) {
// connection.connect(function (err) {
if (err) {
console.error("Database connection failed: " + err.stack);
response.send({ status: "fail", data: err.stack });
} else {
connection.query(_updateStatement, function (error, result) {
if (error !== null) {
response.send({ status: "fail", data: error });
} else {
console.log("Number of records updated: " + result.affectedRows);
connection.release();
response.send({ status: "success", data: "ok" });
}
});
}
});

insert 는 아래와 같은 문법을 사용하시면 됩니다.

var _insertStatement =
"insert into usertable ( column1,column2 ) select 'x1','x2' from dual";

pool.getConnection(function (err, connection) {
// connection.connect(function (err) {
if (err) {
console.error("Database connection failed: " + err.stack);
return;
} else {
connection.query(_insertStatement, function (error, results, field) {
if (error !== null) {
return console.log(error);
}

connection.release();
});
}
});